From e73b6180d7223d9ce643f9f82728ee2c194f5610 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Fri, 31 Oct 2025 17:19:50 +0000 Subject: [PATCH] Refactor: Update plugin upgrade instructions and fix test output Co-authored-by: philippe.serhal --- .../build/src/log/messages/compatibility.ts | 4 +- .../index.js | 3 + .../manifest.yml | 2 + .../package.json | 8 + .../.netlify/plugins-old/package.json | 12 + .../tests/plugins_list/snapshots/tests.js.md | 292 ++++++++++++++---- .../plugins_list/snapshots/tests.js.snap | Bin 4556 -> 4774 bytes 7 files changed, 256 insertions(+), 65 deletions(-) create mode 100644 packages/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/plugins-old/node_modules/netlify-plugin-contextual-env-old/index.js create mode 100644 packages/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/plugins-old/node_modules/netlify-plugin-contextual-env-old/manifest.yml create mode 100644 packages/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/plugins-old/node_modules/netlify-plugin-contextual-env-old/package.json create mode 100644 packages/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/plugins-old/package.json diff --git a/packages/build/src/log/messages/compatibility.ts b/packages/build/src/log/messages/compatibility.ts index b2d618e72c..40a730d5fb 100644 --- a/packages/build/src/log/messages/compatibility.ts +++ b/packages/build/src/log/messages/compatibility.ts @@ -140,10 +140,10 @@ const getUpgradeInstruction = function (loadedFrom, origin) { } if (origin === 'ui') { - return 'To upgrade this plugin, please uninstall and re-install it from the Netlify plugins directory (https://app.netlify.com/plugins)' + return 'To upgrade this plugin, go to Project Configuration > Build & deploy > Build settings in your site dashboard' } - return 'To upgrade this plugin, please remove it from "netlify.toml" and install it from the Netlify plugins directory instead (https://app.netlify.com/plugins)' + return 'To upgrade this plugin, please remove it from "netlify.toml" and install it from Project Configuration > Build & deploy > Build settings in your site dashboard instead' } // Print a warning message when plugins are using a version that is too recent diff --git a/packages/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/plugins-old/node_modules/netlify-plugin-contextual-env-old/index.js b/packages/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/plugins-old/node_modules/netlify-plugin-contextual-env-old/index.js new file mode 100644 index 0000000000..5af9c00980 --- /dev/null +++ b/packages/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/plugins-old/node_modules/netlify-plugin-contextual-env-old/index.js @@ -0,0 +1,3 @@ +export const onPreBuild = function () { + console.log('test') +} diff --git a/packages/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/plugins-old/node_modules/netlify-plugin-contextual-env-old/manifest.yml b/packages/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/plugins-old/node_modules/netlify-plugin-contextual-env-old/manifest.yml new file mode 100644 index 0000000000..a3512f0259 --- /dev/null +++ b/packages/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/plugins-old/node_modules/netlify-plugin-contextual-env-old/manifest.yml @@ -0,0 +1,2 @@ +name: test +inputs: [] diff --git a/packages/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/plugins-old/node_modules/netlify-plugin-contextual-env-old/package.json b/packages/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/plugins-old/node_modules/netlify-plugin-contextual-env-old/package.json new file mode 100644 index 0000000000..fdff3703df --- /dev/null +++ b/packages/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/plugins-old/node_modules/netlify-plugin-contextual-env-old/package.json @@ -0,0 +1,8 @@ +{ + "name": "netlify-plugin-contextual-env", + "version": "0.2.0", + "type": "module", + "description": "test", + "license": "MIT", + "repository": "test" +} diff --git a/packages/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/plugins-old/package.json b/packages/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/plugins-old/package.json new file mode 100644 index 0000000000..0f782f6215 --- /dev/null +++ b/packages/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/build/tests/plugins_list/fixtures/plugins_cache_outdated/.netlify/plugins-old/package.json @@ -0,0 +1,12 @@ +{ + "name": "netlify-local-plugins", + "description": "This directory contains Build plugins that have been automatically installed by Netlify.", + "version": "1.0.0", + "type": "module", + "private": true, + "author": "Netlify", + "license": "MIT", + "dependencies": { + "netlify-plugin-contextual-env": "0.3.0" + } +} diff --git a/packages/build/tests/plugins_list/snapshots/tests.js.md b/packages/build/tests/plugins_list/snapshots/tests.js.md index 54f6d4b033..be1de06632 100644 --- a/packages/build/tests/plugins_list/snapshots/tests.js.md +++ b/packages/build/tests/plugins_list/snapshots/tests.js.md @@ -60,7 +60,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Use plugins cached in .netlify/plugins/ @@ -115,7 +118,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Do not use plugins cached in .netlify/plugins/ if outdated @@ -173,7 +179,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Fetches the list of plugin versions @@ -228,7 +237,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Only prints the list of plugin versions in verbose mode @@ -266,7 +278,10 @@ Generated by [AVA](https://avajs.dev). Netlify Build Complete ␊ ────────────────────────────────────────────────────────────────␊ ␊ - (Netlify Build completed in 1ms)` + (Netlify Build completed in 1ms)␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Uses fallback when the plugins fetch fails @@ -324,7 +339,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Uses fallback when the plugins fetch succeeds with an invalid response @@ -385,7 +403,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Can execute local binaries when using .netlify/plugins/ @@ -440,7 +461,12 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Can require site dependencies when using .netlify/plugins/ @@ -495,7 +521,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Works with .netlify being a regular file @@ -553,7 +582,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Print a warning when using plugins not in plugins.json nor package.json @@ -660,7 +692,12 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Prints outdated plugins installed in package.json @@ -719,7 +756,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Prints incompatible plugins installed in package.json @@ -777,7 +817,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Does not print incompatible plugins installed in package.json if major version is same @@ -832,7 +875,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Does not print incompatible plugins installed in package.json if not using the compatibility field @@ -887,7 +933,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Plugins can specify non-matching compatibility.nodeVersion @@ -935,7 +984,7 @@ Generated by [AVA](https://avajs.dev). ␊ > Outdated plugins␊ - netlify-plugin-contextual-env 0-1-0: latest version is 0-3-0␊ - To upgrade this plugin, please remove it from "netlify.toml" and install it from the Netlify plugins directory instead (https://app.netlify.com/plugins)␊ + To upgrade this plugin, please remove it from "netlify.toml" and install it from Project Configuration > Build & deploy > Build settings in your site dashboard instead␊ ␊ netlify-plugin-contextual-env (onPreBuild event) ␊ ────────────────────────────────────────────────────────────────␊ @@ -949,7 +998,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Plugins ignore compatibility entries without conditions unless pinned @@ -997,7 +1049,7 @@ Generated by [AVA](https://avajs.dev). ␊ > Outdated plugins␊ - netlify-plugin-contextual-env 0-1-0: latest version is 0-3-0␊ - To upgrade this plugin, please remove it from "netlify.toml" and install it from the Netlify plugins directory instead (https://app.netlify.com/plugins)␊ + To upgrade this plugin, please remove it from "netlify.toml" and install it from Project Configuration > Build & deploy > Build settings in your site dashboard instead␊ ␊ netlify-plugin-contextual-env (onPreBuild event) ␊ ────────────────────────────────────────────────────────────────␊ @@ -1011,7 +1063,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Plugins does not ignore compatibility entries without conditions if pinned @@ -1059,7 +1114,7 @@ Generated by [AVA](https://avajs.dev). ␊ > Outdated plugins␊ - netlify-plugin-contextual-env 0-2-0: latest version is 0-3-0␊ - To upgrade this plugin, please remove it from "netlify.toml" and install it from the Netlify plugins directory instead (https://app.netlify.com/plugins)␊ + To upgrade this plugin, please remove it from "netlify.toml" and install it from Project Configuration > Build & deploy > Build settings in your site dashboard instead␊ ␊ netlify-plugin-contextual-env (onPreBuild event) ␊ ────────────────────────────────────────────────────────────────␊ @@ -1073,7 +1128,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Plugins ignore compatibility conditions if pinned @@ -1121,7 +1179,7 @@ Generated by [AVA](https://avajs.dev). ␊ > Outdated plugins␊ - netlify-plugin-contextual-env 0-2-0: latest version is 0-3-0␊ - To upgrade this plugin, please remove it from "netlify.toml" and install it from the Netlify plugins directory instead (https://app.netlify.com/plugins)␊ + To upgrade this plugin, please remove it from "netlify.toml" and install it from Project Configuration > Build & deploy > Build settings in your site dashboard instead␊ ␊ netlify-plugin-contextual-env (onPreBuild event) ␊ ────────────────────────────────────────────────────────────────␊ @@ -1135,7 +1193,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Plugins can specify matching compatibility.nodeVersion @@ -1183,7 +1244,7 @@ Generated by [AVA](https://avajs.dev). ␊ > Outdated plugins␊ - netlify-plugin-contextual-env 0-2-0: latest version is 0-3-0␊ - To upgrade this plugin, please remove it from "netlify.toml" and install it from the Netlify plugins directory instead (https://app.netlify.com/plugins)␊ + To upgrade this plugin, please remove it from "netlify.toml" and install it from Project Configuration > Build & deploy > Build settings in your site dashboard instead␊ ␊ netlify-plugin-contextual-env (onPreBuild event) ␊ ────────────────────────────────────────────────────────────────␊ @@ -1197,7 +1258,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Plugins compatibility defaults to version field @@ -1255,7 +1319,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Plugins can specify compatibility.migrationGuide @@ -1304,7 +1371,7 @@ Generated by [AVA](https://avajs.dev). > Outdated plugins␊ - netlify-plugin-contextual-env 0-1-0: latest version is 0-3-0␊ Migration guide: http://test.com␊ - To upgrade this plugin, please remove it from "netlify.toml" and install it from the Netlify plugins directory instead (https://app.netlify.com/plugins)␊ + To upgrade this plugin, please remove it from "netlify.toml" and install it from Project Configuration > Build & deploy > Build settings in your site dashboard instead␊ ␊ netlify-plugin-contextual-env (onPreBuild event) ␊ ────────────────────────────────────────────────────────────────␊ @@ -1318,7 +1385,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Plugins can specify matching compatibility.siteDependencies @@ -1366,7 +1436,7 @@ Generated by [AVA](https://avajs.dev). ␊ > Outdated plugins␊ - netlify-plugin-contextual-env 0-2-0: latest version is 0-3-0␊ - To upgrade this plugin, please remove it from "netlify.toml" and install it from the Netlify plugins directory instead (https://app.netlify.com/plugins)␊ + To upgrade this plugin, please remove it from "netlify.toml" and install it from Project Configuration > Build & deploy > Build settings in your site dashboard instead␊ ␊ netlify-plugin-contextual-env (onPreBuild event) ␊ ────────────────────────────────────────────────────────────────␊ @@ -1380,7 +1450,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Plugins can specify non-matching compatibility.siteDependencies @@ -1438,7 +1511,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Plugins can specify non-existing compatibility.siteDependencies @@ -1496,7 +1572,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Plugins can specify multiple non-matching compatibility conditions @@ -1554,7 +1633,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Plugins can specify multiple matching compatibility conditions @@ -1602,7 +1684,7 @@ Generated by [AVA](https://avajs.dev). ␊ > Outdated plugins␊ - netlify-plugin-contextual-env 0-2-0: latest version is 0-3-0␊ - To upgrade this plugin, please remove it from "netlify.toml" and install it from the Netlify plugins directory instead (https://app.netlify.com/plugins)␊ + To upgrade this plugin, please remove it from "netlify.toml" and install it from Project Configuration > Build & deploy > Build settings in your site dashboard instead␊ ␊ netlify-plugin-contextual-env (onPreBuild event) ␊ ────────────────────────────────────────────────────────────────␊ @@ -1616,7 +1698,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Plugins can specify non-matching compatibility.siteDependencies range @@ -1664,7 +1749,7 @@ Generated by [AVA](https://avajs.dev). ␊ > Outdated plugins␊ - netlify-plugin-contextual-env 0-2-0: latest version is 0-3-0␊ - To upgrade this plugin, please remove it from "netlify.toml" and install it from the Netlify plugins directory instead (https://app.netlify.com/plugins)␊ + To upgrade this plugin, please remove it from "netlify.toml" and install it from Project Configuration > Build & deploy > Build settings in your site dashboard instead␊ ␊ netlify-plugin-contextual-env (onPreBuild event) ␊ ────────────────────────────────────────────────────────────────␊ @@ -1678,7 +1763,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Plugin versions can be feature flagged @@ -1736,7 +1824,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Plugin versions that are feature flagged are ignored if no matching feature flag @@ -1794,7 +1885,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Plugin pinned versions that are feature flagged are not ignored if pinned but no matching feature flag @@ -1852,7 +1946,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Compatibility order take precedence over the `featureFlag` property @@ -1910,7 +2007,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Pin plugin versions @@ -1969,7 +2069,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Report updatePlugin API error without failing the build @@ -2056,7 +2159,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Does not report 404 updatePlugin API error @@ -2115,7 +2221,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Only pin plugin versions in production @@ -2174,7 +2283,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Do not pin plugin versions without an API token @@ -2233,7 +2345,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Do not pin plugin versions without a siteId @@ -2291,7 +2406,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Do not pin plugin versions if the build failed @@ -2374,6 +2492,8 @@ Generated by [AVA](https://avajs.dev). origin: ui␊ package: netlify-plugin-contextual-env␊ ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)␊ node: bad option: --invalid` ## Do not pin plugin versions if the plugin failed @@ -2421,6 +2541,10 @@ Generated by [AVA](https://avajs.dev). > Loading plugins␊ - netlify-plugin-contextual-env 0-3-0 from Netlify app (latest 0-3-0, expected 0-3-0, compatible 0-3-0)␊ ␊ + netlify-plugin-contextual-env (onPreBuild event) ␊ + ────────────────────────────────────────────────────────────────␊ + ␊ + ␊ Plugin "netlify-plugin-contextual-env" failed ␊ ────────────────────────────────────────────────────────────────␊ ␊ @@ -2450,7 +2574,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Do not pin plugin versions if the build was installed in package.json @@ -2509,7 +2636,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Do not pin plugin versions if already pinned @@ -2558,7 +2688,7 @@ Generated by [AVA](https://avajs.dev). ␊ > Outdated plugins␊ - netlify-plugin-contextual-env 0-3-0: latest version is 1-0-0␊ - To upgrade this plugin, please uninstall and re-install it from the Netlify plugins directory (https://app.netlify.com/plugins)␊ + To upgrade this plugin, go to Project Configuration > Build & deploy > Build settings in your site dashboard␊ ␊ netlify-plugin-contextual-env (onPreBuild event) ␊ ────────────────────────────────────────────────────────────────␊ @@ -2572,7 +2702,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Pinning plugin versions takes into account the compatibility field @@ -2621,7 +2754,7 @@ Generated by [AVA](https://avajs.dev). ␊ > Outdated plugins␊ - netlify-plugin-contextual-env 0-3-0: latest version is 1-0-0␊ - To upgrade this plugin, please uninstall and re-install it from the Netlify plugins directory (https://app.netlify.com/plugins)␊ + To upgrade this plugin, go to Project Configuration > Build & deploy > Build settings in your site dashboard␊ ␊ netlify-plugin-contextual-env (onPreBuild event) ␊ ────────────────────────────────────────────────────────────────␊ @@ -2635,7 +2768,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Do not pin plugin with prerelease versions @@ -2694,7 +2830,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Pin netlify.toml-only plugin versions @@ -2753,7 +2892,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Does not pin netlify.toml-only plugin versions if there are no matching plugin runs @@ -2812,7 +2954,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Does not pin netlify.toml-only plugin versions if there are no plugin runs @@ -2871,7 +3016,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Does not pin netlify.toml-only plugin versions if there are no matching plugin runs version @@ -2930,7 +3078,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Fails the build when pinning netlify.toml-only plugin versions and the API request fails @@ -3061,7 +3212,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Does not pin netlify.toml-only plugin versions if installed in UI @@ -3120,7 +3274,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Does not pin netlify.toml-only plugin versions if installed in package.json @@ -3179,7 +3336,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Does not pin netlify.toml-only plugin versions if there are no API token @@ -3238,7 +3398,10 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` ## Does not pin netlify.toml-only plugin versions if there are no site ID @@ -3296,4 +3459,7 @@ Generated by [AVA](https://avajs.dev). ────────────────────────────────────────────────────────────────␊ ␊ (Netlify Build completed in 1ms)␊ - Build step duration: Netlify Build completed in 1ms` + Build step duration: Netlify Build completed in 1ms␊ + ␊ + (node:80) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.␊ + (Use \`node --trace-warnings ...\` to show where the warning was created)` diff --git a/packages/build/tests/plugins_list/snapshots/tests.js.snap b/packages/build/tests/plugins_list/snapshots/tests.js.snap index 28839faa404018abf5353ee363ad9c943aded14c..95c0adac718a5992f025c9f03a27f1e9e68f8e1f 100644 GIT binary patch literal 4774 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 av;N`y4Ae3K8TNn5#kA5lSOzViqx}zz*BF!l literal 4556 zcmV;-5i{;VRzVr>SmA>(v;2+>0;5$JO--sgkP7p<^ zx;oR9bTY{#om6L@rC#iGI+f~rx}MLss-CKPtJ4m-e;|JH{4a>4G9-_#++sp{VF*!} zbSV=+88jJ@A?+M*n`_%})FTWSm*9JTj|5aOFA_a2#n;~o0#ABh+<4>Zr#7Ba|K9e_ zr{4SaI~%pTX&&%WLc;)N{a5?T55HFFRI6Qu*GMcVXElHqvl?yd+SqOGGZbuoXZwOo`2wViAcY_Es2mKv(0`;h1~AYM>2_t*go_^ z8tj`d)Bx1I_aZ4;HC3zTJ9ns%uf|~ubXMDf`v*ko8w3prlXocVl9;mYUd(+W1QDia zwX1MFiDSYf1T-eTDq;=JUOtr{XC2yw4h_j1Ic=NzZA#t`Rkrtu;Nc+&z}NZL0CbL~ z8j^NMMQ^T(9prK^rd`Tf5Ri_SgsK`%2I+4#fU+o&q6Lqi)Y5mGn{Nz?rgKYkZh?7{ zMw&~*=S-4EGV#I&VTY#1)D`tZF%J@7s#mOb6|Nn6H1ygb$qJw@n$}HOcW_k~YT~cJ zPUCVzzn^!w7o6q0(202;@UcUR9sMRh`uBco+sY(uss&&d> zw=bTnrPqZd5d=x>sdwp=S8!5(wIQ#6-F$wIy#7VI2Bxg>$zRG?z4@vbG;TxULR^pH z`I-M%c>c#Ti075yIlHQj=OCW#^38*1E2r}DJY2CA!87u8l`cTl7vj^QR4zVSH@NP@ zCeu+AXa{&A15Xxqc)w~9HNpeIr?|2SJH^#Y z5FH;MFnM1brOP<{${$23hiOnD@*Lp+6%R*!Gjsf`_C>=3UtTd_mzSSlBt&);L= zF+?$Caw0w<{ePPa0(~BkQJlWx_ZCin^A5!68F1S1LQy4Xjq~h_bK>Ze7vPi8iJs;} zGl%%mR|OHO8HR1oKS-lqlwZt73p=W-0UeKq1zn1bCzcOnI3kE$3hYuWu}kr~7cYB_NPM4=K$zCdfHEE7H)z%ceE+G%_wOLz zk?+X&HR8MR2_%4aBF8$0R_$>OpibhL$MqJ}RUY-)6NJBm3E}TtDtScny2pS#B7PzX zgxvQ+XjA6Jl!#ObBto^tDI#V!-fhwTzc@kY0PXkNl(|lPUB<;l^|UElc0f;B$*$2K z@#_eW%BuSTiG=f@ zJt^tpa68Cz+0e~bJE9lSd#bBQn-r4QnN%)$FTT#>12bHmu@%}xwLdi%)lEV#*50px zv){8g`!(dO3!F7J+c(5=8?{zp7f0KCw#x?YQ2kegxwv$tvI&>2R49h{BJ#t$X^Na&E%oO8!`=-a2~i1 zN2|9qj7R*4#0}qzB@xtP4a4dg0dCDxsdeb-997oX757pnAb9^IWW|fg*p1gN z{L^abf4+b%-2rj0&FWxlFDm8YJqz_ee-zEi1vr`^4D*~MLhh~5)Xew@vvI)khf=51jP64 zph^v&+Epu^Q8l1ya4VIo8eY4>Nje#;w@aE)J*cgO``$wy=Y_oR`bEK7-?n7MG0F-@ zWyQX--@dkL6%|Il_@#=C+z&aRJ8Y}1uLRj?T$xpZTp5xeR~oxR668u_7sI#^{m!Lw z(chjM{pq0tss$^toqd~zR31ZzlCbD_fiGDy;PWU09F+l8WIv8BR2l6H7+t^!?J+(E z(e79(c{y{oNs#X`5E1d!R~ToFz9)Shs&B!%$#_5vgbE@tzhxo&5k_LJI1*EvZeQ7K z|8P(YS7BXL+J!`Bj^?|>2+cwhR0PduU23&E$5N}^8RIl}M?k(iSIoigyfFtc>GMMs zbC5npJ^vhaEm2HQX>g0`5@n7u>rD;XlD?aG0bJ}!8Hv{RwiiX&^4F%%``N38;suwN zRWFsRZeGsR4ec@>4-Y&LCev-vsO<4XDwi5isdq|DSV)9`h%#2VdcNIq!e+lIz;!|>X;9LfKS_hFU&AyqfWlPkvm1Y zKm`5F5<%ZZ5#)pj%8o1^Sk8SVG+N{Z%At|Wm#&G5EVAap2_8ls!1#<3vIUP`$Jw2|ylEAyEP>#DFLPPy(O?KndVN zLJ3g4RIUVgsc_;W2_=m}GGRC%w^A2Xz!Ww_6@V%LRRF307ZR#~>ZNj3z}1N=;0y`? zBOpfXhYA1{04e~CfWQcdRe4}kJylCf+Hd}h5fBi2tXs4O=C_vk`6Y@UH^tAswqFG$ zkSTbXLMZ)-)ytuQjZhS!C_+)Rc+ZTYsA{QPQS^~i6lD!L6-R9X9pWjE4V}>Ic8fM; z#hpDy?Bs&#!Ii(b@)sv~km^Wvw^O-P-y5d7?0FKrc!cZvTDmoRptfLV{ABtke=G8T z3X3BDk^kq8|7DJ3T$*wu1No2quUIOV{~g1BbG*THGT`K3y5QtA7HB7O7FF<;r3$`} zssL31s)F;U3Q8Ci7#!7d**dCaSR;&%5uipujZn!{u12_i-3ssIaX?~_-T{FqCO%OU zvIO{{y4WM|6~lc+s;?-|5s_FP~GzDRsU+8Tf$EO&vVi2Lqu%e4zS-e; zN$k%(=LqZXazi3UTXh9zeIkUXSN6Q*1#q9dnP^*O zABWu6m0bgPy{G(*Zw8(6D?fB)vLND=N!ZL+=BCE1YW$CN^RAoLU2hFmmlRvCzLnmu z7b4L>-LGDv>~fn2$Mu%URAsB@pt4asb@xv5a$SF_9Lc)#e( z|Mo5tW|wl{b{xY)kQc-tT)XXn|T#2aN`0hh9j7{Ac$@7s#EJ z<3kokm?O+5c_Q~7#LLm3%^e-aj0Db|1ru`{kLhfH2_mX0g)aJ zm2vj6x4`_H{4zl1p9c4*Zb|Vo^FQfF#!IlM43W!Zoa?k)5UHgib!#$Gy)Y(TaBMb; zE*NCku*msu3%x01mGM7R8K^Q)WuVF!t1?EWFm`u#P-~#pK&`QCla#z2((u@Y4r+;F z5|gyiP1pka1xr(Gp{7`2c*MY9YcDHukLs|pune-E;$pXPsd2dx`{M&6vO99Z;^dMw zijiJK0waN)OXU*y!|Jq&{OnnS>rIpFzJCFHi3Q)+5WcH}Z_15x)2|U}$q=oD@R+ zix$*xBh(S<2z7)yp8i;#gF%oxmdXYB?Kwe?{GQF0$ZzB~@*DYGnu9@pJC@4j_Zua2 z#Iw5*=u;RMfsQ~&pd-*rb1(>W$5OdK|H4hR(L;Xad5cX zV5Z(bqo{lSDU0R}q&dOkO#Y&&kfL_R}t?OTEl}T8GWGz8z|{`O5ATTeu?4 zXZJQpbH`G-H2>_Jk!fniMe+lJVQAA>a@8ou@o^j5;Y?OZAc*8c}d-zIGNwgCXQO3UH^