From fc920125720bd32059abc54ef650ac4030c49263 Mon Sep 17 00:00:00 2001 From: James Garbutt <43081j@users.noreply.github.com> Date: Tue, 5 May 2026 11:23:54 +0100 Subject: [PATCH 1/6] chore: replace eslint-plugin-import with eslint-plugin-import-x This replaces `eslint-plugin-import` with the much lighter and more modern `eslint-plugin-import-x`. The gain here other than a smaller/faster plugin, is that modern package exports and typescript resolution is supported. **Also bumps typescript-eslint** which caught a bunch of minor warnings and errors. --- eslint.config.js | 27 +- package-lock.json | 2787 +++++------------ package.json | 6 +- packages/build-info/src/file-system.ts | 2 +- packages/build-info/src/node/file-system.ts | 2 +- .../src/workspaces/get-workspace-packages.ts | 2 +- packages/build-info/tests/mock-file-system.ts | 2 +- packages/build/src/core/main.ts | 2 +- packages/build/src/core/types.ts | 3 +- packages/build/src/core/user_node_version.js | 2 +- packages/build/src/error/parse/parse.ts | 2 +- packages/build/src/error/types.ts | 2 +- packages/build/src/log/logger.ts | 2 +- .../build/src/log/messages/compatibility.ts | 2 +- packages/build/src/plugins/child/utils.ts | 2 +- packages/build/src/plugins/compatibility.ts | 4 +- .../build/src/plugins/expected_version.ts | 2 +- packages/build/src/plugins/internal.ts | 2 + packages/build/src/plugins/list.ts | 2 +- packages/build/src/plugins/node_version.ts | 2 +- packages/build/src/plugins/options.ts | 2 +- .../build/src/plugins/plugin_conditions.ts | 2 +- packages/build/src/plugins/spawn.ts | 2 +- .../src/plugins_core/frameworks_api/index.ts | 9 +- .../build/src/plugins_core/functions/zisi.ts | 4 +- packages/build/src/plugins_core/types.ts | 2 +- packages/build/src/status/validations.ts | 2 +- packages/build/src/steps/error.ts | 3 +- packages/build/src/steps/plugin.js | 3 +- packages/build/src/time/main.ts | 7 +- packages/build/src/utils/semver.js | 2 +- packages/build/tests/blobs_upload/tests.js | 4 +- packages/build/tests/core/tests.js | 2 +- packages/build/tests/edge_functions/tests.js | 4 +- packages/build/tests/frameworks_api/tests.js | 4 +- packages/build/tests/functions/tests.js | 2 +- packages/build/tests/mutate_save/tests.js | 2 +- packages/build/tests/plugins/tests.js | 3 +- packages/build/tests/unit/logger/tests.js | 2 +- packages/config/src/case.ts | 2 +- packages/config/src/env/main.ts | 6 +- .../config/src/mutations/config_prop_name.ts | 2 +- packages/config/src/validate/validations.js | 2 +- packages/edge-bundler/node/bridge.test.ts | 5 +- packages/edge-bundler/node/bridge.ts | 2 +- packages/edge-bundler/node/bundler.test.ts | 2 +- packages/edge-bundler/node/bundler.ts | 3 +- packages/edge-bundler/node/config.test.ts | 2 +- packages/edge-bundler/node/config.ts | 2 +- .../edge-bundler/node/deploy_config.test.ts | 2 +- packages/edge-bundler/node/downloader.test.ts | 5 +- packages/edge-bundler/node/downloader.ts | 2 +- packages/edge-bundler/node/formats/tarball.ts | 5 +- packages/edge-bundler/node/import_map.test.ts | 2 +- packages/edge-bundler/node/main.test.ts | 4 +- .../edge-bundler/node/npm_dependencies.ts | 2 +- .../edge-bundler/node/package_json.test.ts | 2 +- .../edge-bundler/node/server/server.test.ts | 2 +- packages/edge-bundler/node/stage_2.test.ts | 2 +- packages/edge-bundler/node/types.test.ts | 2 +- .../node/validation/manifest/index.ts | 1 + .../edge-bundler/test/integration/test.js | 2 +- packages/edge-bundler/test/util.ts | 6 +- packages/functions-utils/src/main.ts | 4 +- packages/js-client/package.json | 5 +- packages/opentelemetry-sdk-setup/src/bin.ts | 2 +- packages/redirect-parser/src/all.ts | 6 +- packages/run-utils/tests/main.test.ts | 2 +- packages/testing/src/server.ts | 2 +- packages/testing/src/tcp_server.ts | 2 +- packages/zip-it-and-ship-it/src/deps.d.ts | 4 - .../zip-it-and-ship-it/src/runtimes/index.ts | 2 +- .../runtimes/node/bundlers/esbuild/bundler.ts | 6 +- .../runtimes/node/bundlers/esbuild/index.ts | 4 +- .../bundlers/esbuild/plugin_native_modules.ts | 2 +- .../node/bundlers/esbuild/src_files.ts | 2 +- .../node/bundlers/zisi/list_imports.ts | 7 +- .../src/runtimes/node/bundlers/zisi/nested.ts | 2 +- .../in_source_config/properties/schedule.ts | 2 +- .../src/runtimes/node/index.ts | 6 +- .../src/runtimes/node/parser/exports.ts | 8 +- .../src/runtimes/node/parser/helpers.ts | 2 +- .../src/runtimes/node/parser/imports.ts | 2 +- .../src/runtimes/node/parser/index.ts | 2 +- .../src/runtimes/node/utils/included_files.ts | 1 + .../src/runtimes/node/utils/node_version.ts | 2 +- .../src/runtimes/rust/builder.ts | 2 +- .../zip-it-and-ship-it/tests/main.test.ts | 5 +- .../tests/telemetry.test.ts | 1 + .../zip-it-and-ship-it/tests/v2api.test.ts | 1 + 90 files changed, 847 insertions(+), 2224 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index fb9c934114..e6d2c5af37 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,4 +1,5 @@ // @ts-check +/* eslint-disable import-x/no-named-as-default-member */ import * as path from 'node:path' import { fileURLToPath } from 'node:url' @@ -6,7 +7,7 @@ import { includeIgnoreFile } from '@eslint/compat' import eslint from '@eslint/js' import vitest from '@vitest/eslint-plugin' import ava from 'eslint-plugin-ava' -import * as importPlugin from 'eslint-plugin-import' +import importPlugin from 'eslint-plugin-import-x' import node from 'eslint-plugin-n' import tseslint from 'typescript-eslint' @@ -48,6 +49,7 @@ export default tseslint.config( // Import rules importPlugin.flatConfigs?.recommended, + importPlugin.flatConfigs?.typescript, { files: ['**/*.{js,mjs,cjs}'], languageOptions: { @@ -55,14 +57,21 @@ export default tseslint.config( sourceType: 'module', }, rules: { - 'import/extensions': ['error', 'ignorePackages'], // This requires for esm modules .js file extensions on relative paths - 'import/no-absolute-path': ['error'], - 'import/no-cycle': ['error', { ignoreExternal: true }], - 'import/no-duplicates': ['error', { considerQueryString: true }], - 'import/no-mutable-exports': ['error'], - 'import/no-self-import': ['error'], - 'import/no-useless-path-segments': ['error'], - 'import/order': [ + 'import-x/extensions': [ + 'error', + 'ignorePackages', + { + js: 'always', + ts: 'never', + }, + ], // This requires for esm modules .js file extensions on relative paths + 'import-x/no-absolute-path': ['error'], + 'import-x/no-cycle': ['error', { ignoreExternal: true }], + 'import-x/no-duplicates': ['error', { considerQueryString: true }], + 'import-x/no-mutable-exports': ['error'], + 'import-x/no-self-import': ['error'], + 'import-x/no-useless-path-segments': ['error'], + 'import-x/order': [ 'error', { 'newlines-between': 'always', diff --git a/package-lock.json b/package-lock.json index 575d935e2d..cf714a3af3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,16 +16,16 @@ "@commitlint/config-conventional": "^19.0.0", "@eslint/compat": "^1.2.9", "@eslint/js": "^9.28.0", - "@typescript-eslint/eslint-plugin": "^8.34.0", "@vitest/eslint-plugin": "^1.2.1", "eslint": "^9.28.0", + "eslint-import-resolver-typescript": "^4.4.4", "eslint-plugin-ava": "^15.0.1", - "eslint-plugin-import": "^2.31.0", + "eslint-plugin-import-x": "^4.16.2", "eslint-plugin-n": "^17.19.0", "execa": "^8.0.1", "lerna": "^8.2.2", "oxfmt": "^0.46.0", - "typescript-eslint": "^8.34.0" + "typescript-eslint": "^8.59.2" }, "engines": { "node": ">=18.14.0" @@ -1002,9 +1002,9 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", - "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1021,9 +1021,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", "dev": true, "license": "MIT", "engines": { @@ -5026,6 +5026,13 @@ "node": "^20.19.0 || >=22.12.0" } }, + "node_modules/@package-json/types": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/@package-json/types/-/types-0.0.12.tgz", + "integrity": "sha512-uu43FGU34B5VM9mCNjXCwLaGHYjXdNincqKLaraaCW+7S2+SmiBg1Nv8bPnmschrIfZmfKNY9f3fC376MRrObw==", + "dev": true, + "license": "MIT" + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -5152,13 +5159,11 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "android" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-android-arm64": { "version": "4.59.0", @@ -5167,13 +5172,11 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "android" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-darwin-arm64": { "version": "4.59.0", @@ -5182,13 +5185,11 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "darwin" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-darwin-x64": { "version": "4.59.0", @@ -5197,13 +5198,11 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "darwin" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-freebsd-arm64": { "version": "4.59.0", @@ -5212,13 +5211,11 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "freebsd" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-freebsd-x64": { "version": "4.59.0", @@ -5227,13 +5224,11 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "freebsd" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { "version": "4.59.0", @@ -5242,13 +5237,11 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { "version": "4.59.0", @@ -5257,13 +5250,11 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { "version": "4.59.0", @@ -5272,13 +5263,11 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { "version": "4.59.0", @@ -5287,13 +5276,11 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { "version": "4.59.0", @@ -5302,13 +5289,11 @@ "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-loong64-musl": { "version": "4.59.0", @@ -5317,13 +5302,11 @@ "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { "version": "4.59.0", @@ -5332,13 +5315,11 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-ppc64-musl": { "version": "4.59.0", @@ -5347,13 +5328,11 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { "version": "4.59.0", @@ -5362,13 +5341,11 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { "version": "4.59.0", @@ -5377,13 +5354,11 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { "version": "4.59.0", @@ -5392,13 +5367,11 @@ "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { "version": "4.59.0", @@ -5407,13 +5380,11 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-x64-musl": { "version": "4.59.0", @@ -5422,13 +5393,11 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-openbsd-x64": { "version": "4.59.0", @@ -5437,13 +5406,11 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "openbsd" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-openharmony-arm64": { "version": "4.59.0", @@ -5452,13 +5419,11 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "openharmony" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { "version": "4.59.0", @@ -5467,13 +5432,11 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { "version": "4.59.0", @@ -5482,13 +5445,11 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { "version": "4.59.0", @@ -5497,13 +5458,11 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { "version": "4.59.0", @@ -5512,20 +5471,11 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "win32" - ], - "peer": true - }, - "node_modules/@rtsao/scc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", - "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", - "dev": true, - "license": "MIT" + ] }, "node_modules/@sec-ant/readable-stream": { "version": "0.4.1", @@ -5867,13 +5817,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/lodash": { "version": "4.17.16", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.16.tgz", @@ -5988,21 +5931,20 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.35.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.35.1.tgz", - "integrity": "sha512-9XNTlo7P7RJxbVeICaIIIEipqxLKguyh+3UbXuT2XQuFp6d8VOeDEGuz5IiX0dgZo8CiI6aOFLg4e8cF71SFVg==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.59.2.tgz", + "integrity": "sha512-j/bwmkBvHUtPNxzuWe5z6BEk3q54YRyGlBXkSsmfoih7zNrBvl5A9A98anlp/7JbyZcWIJ8KXo/3Tq/DjFLtuQ==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.35.1", - "@typescript-eslint/type-utils": "8.35.1", - "@typescript-eslint/utils": "8.35.1", - "@typescript-eslint/visitor-keys": "8.35.1", - "graphemer": "^1.4.0", - "ignore": "^7.0.0", + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.59.2", + "@typescript-eslint/type-utils": "8.59.2", + "@typescript-eslint/utils": "8.59.2", + "@typescript-eslint/visitor-keys": "8.59.2", + "ignore": "^7.0.5", "natural-compare": "^1.4.0", - "ts-api-utils": "^2.1.0" + "ts-api-utils": "^2.5.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6012,9 +5954,9 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.35.1", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "@typescript-eslint/parser": "^8.59.2", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { @@ -6028,17 +5970,17 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.35.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.35.1.tgz", - "integrity": "sha512-3MyiDfrfLeK06bi/g9DqJxP5pV74LNv4rFTyvGDmT3x2p1yp1lOd+qYZfiRPIOf/oON+WRZR5wxxuF85qOar+w==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.59.2.tgz", + "integrity": "sha512-plR3pp6D+SSUn1HM7xvSkx12/DhoHInI2YF35KAcVFNZvlC0gtrWqx7Qq1oH2Ssgi0vlFRCTbP+DZc7B9+TtsQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.35.1", - "@typescript-eslint/types": "8.35.1", - "@typescript-eslint/typescript-estree": "8.35.1", - "@typescript-eslint/visitor-keys": "8.35.1", - "debug": "^4.3.4" + "@typescript-eslint/scope-manager": "8.59.2", + "@typescript-eslint/types": "8.59.2", + "@typescript-eslint/typescript-estree": "8.59.2", + "@typescript-eslint/visitor-keys": "8.59.2", + "debug": "^4.4.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6048,19 +5990,19 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.35.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.35.1.tgz", - "integrity": "sha512-VYxn/5LOpVxADAuP3NrnxxHYfzVtQzLKeldIhDhzC8UHaiQvYlXvKuVho1qLduFbJjjy5U5bkGwa3rUGUb1Q6Q==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.59.2.tgz", + "integrity": "sha512-+2hqvEkeyf/0FBor67duF0Ll7Ot8jyKzDQOSrxazF/danillRq2DwR9dLptsXpoZQqxE1UisSmoZewrlPas9Vw==", "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.35.1", - "@typescript-eslint/types": "^8.35.1", - "debug": "^4.3.4" + "@typescript-eslint/tsconfig-utils": "^8.59.2", + "@typescript-eslint/types": "^8.59.2", + "debug": "^4.4.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6070,18 +6012,18 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <5.9.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.35.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.35.1.tgz", - "integrity": "sha512-s/Bpd4i7ht2934nG+UoSPlYXd08KYz3bmjLEb7Ye1UVob0d1ENiT3lY8bsCmik4RqfSbPw9xJJHbugpPpP5JUg==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.59.2.tgz", + "integrity": "sha512-JzfyEpEtOU89CcFSwyNS3mu4MLvLSXqnmX05+aKBDM+TdR5jzcGOEBwxwGNxrEQ7p/z6kK2WyioCGBf2zZBnvg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.35.1", - "@typescript-eslint/visitor-keys": "8.35.1" + "@typescript-eslint/types": "8.59.2", + "@typescript-eslint/visitor-keys": "8.59.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6092,9 +6034,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.35.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.35.1.tgz", - "integrity": "sha512-K5/U9VmT9dTHoNowWZpz+/TObS3xqC5h0xAIjXPw+MNcKV9qg6eSatEnmeAwkjHijhACH0/N7bkhKvbt1+DXWQ==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.2.tgz", + "integrity": "sha512-BKK4alN7oi4C/zv4VqHQ+uRU+lTa6JGIZ7s1juw7b3RHo9OfKB+bKX3u0iVZetdsUCBBkSbdWbarJbmN0fTeSw==", "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6104,20 +6046,21 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <5.9.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.35.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.35.1.tgz", - "integrity": "sha512-HOrUBlfVRz5W2LIKpXzZoy6VTZzMu2n8q9C2V/cFngIC5U1nStJgv0tMV4sZPzdf4wQm9/ToWUFPMN9Vq9VJQQ==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.59.2.tgz", + "integrity": "sha512-nhqaj1nmTdVVl/BP5omXNRGO38jn5iosis2vbdmupF2txCf8ylWT8lx+JlvMYYVqzGVKtjojUFoQ3JRWK+mfzQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.35.1", - "@typescript-eslint/utils": "8.35.1", - "debug": "^4.3.4", - "ts-api-utils": "^2.1.0" + "@typescript-eslint/types": "8.59.2", + "@typescript-eslint/typescript-estree": "8.59.2", + "@typescript-eslint/utils": "8.59.2", + "debug": "^4.4.3", + "ts-api-utils": "^2.5.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6127,14 +6070,14 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/types": { - "version": "8.35.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.1.tgz", - "integrity": "sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.59.2.tgz", + "integrity": "sha512-e82GVOE8Ps3E++Egvb6Y3Dw0S10u8NkQ9KXmtRhCWJJ8kDhOJTvtMAWnFL16kB1583goCWXsr0NieKCZMs2/0Q==", "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6145,21 +6088,20 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.35.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.35.1.tgz", - "integrity": "sha512-Vvpuvj4tBxIka7cPs6Y1uvM7gJgdF5Uu9F+mBJBPY4MhvjrjWGK4H0lVgLJd/8PWZ23FTqsaJaLEkBCFUk8Y9g==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.59.2.tgz", + "integrity": "sha512-o0XPGNwcWw+FIwStOWn+BwBuEmL6QXP0rsvAFg7ET1dey1Nr6Wb1ac8p5HEsK0ygO/6mUxlk+YWQD9xcb/nnXg==", "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.35.1", - "@typescript-eslint/tsconfig-utils": "8.35.1", - "@typescript-eslint/types": "8.35.1", - "@typescript-eslint/visitor-keys": "8.35.1", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^2.1.0" + "@typescript-eslint/project-service": "8.59.2", + "@typescript-eslint/tsconfig-utils": "8.59.2", + "@typescript-eslint/types": "8.59.2", + "@typescript-eslint/visitor-keys": "8.59.2", + "debug": "^4.4.3", + "minimatch": "^10.2.2", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.5.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6169,133 +6111,56 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <5.9.0" + "typescript": ">=4.8.4 <6.1.0" } }, - "node_modules/@typescript-eslint/utils": { - "version": "8.35.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.35.1.tgz", - "integrity": "sha512-lhnwatFmOFcazAsUm3ZnZFpXSxiwoa1Lj50HphnDe1Et01NF4+hrdXONSUHIcbVu2eFb1bAf+5yjXkGVkXBKAQ==", - "dev": true, + "node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.35.1", - "@typescript-eslint/types": "8.35.1", - "@typescript-eslint/typescript-estree": "8.35.1" - }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "node": "18 || 20 || >=22" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.35.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.35.1.tgz", - "integrity": "sha512-VRwixir4zBWCSTP/ljEo091lbpypz57PoeAQ9imjG+vbeof9LplljsL1mos4ccG6H9IjfrVGM359RozUnuFhpw==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.35.1", - "eslint-visitor-keys": "^4.2.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "balanced-match": "^4.0.2" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", - "license": "Apache-2.0", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@vitest/coverage-v8": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.2.4.tgz", - "integrity": "sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.3.0", - "@bcoe/v8-coverage": "^1.0.2", - "ast-v8-to-istanbul": "^0.3.3", - "debug": "^4.4.1", - "istanbul-lib-coverage": "^3.2.2", - "istanbul-lib-report": "^3.0.1", - "istanbul-lib-source-maps": "^5.0.6", - "istanbul-reports": "^3.1.7", - "magic-string": "^0.30.17", - "magicast": "^0.3.5", - "std-env": "^3.9.0", - "test-exclude": "^7.0.1", - "tinyrainbow": "^2.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@vitest/browser": "3.2.4", - "vitest": "3.2.4" - }, - "peerDependenciesMeta": { - "@vitest/browser": { - "optional": true - } + "node": "18 || 20 || >=22" } }, - "node_modules/@vitest/eslint-plugin": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@vitest/eslint-plugin/-/eslint-plugin-1.4.3.tgz", - "integrity": "sha512-ba+YDKyZdViNAOg8P86a9tIEawPA/O+nLbwhg8g7nkqsLOAVum6GoZhkNxgwX621oqWAbB8N2xb+G5kkpXehcA==", - "dev": true, - "license": "MIT", + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "license": "BlueOak-1.0.0", "dependencies": { - "@typescript-eslint/scope-manager": "^8.46.1", - "@typescript-eslint/utils": "^8.46.1" + "brace-expansion": "^5.0.5" }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "eslint": ">=8.57.0", - "typescript": ">=5.0.0", - "vitest": "*" + "node": "18 || 20 || >=22" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - }, - "vitest": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@vitest/eslint-plugin/node_modules/@typescript-eslint/project-service": { - "version": "8.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.4.tgz", - "integrity": "sha512-nPiRSKuvtTN+no/2N1kt2tUh/HoFzeEgOm9fQ6XQk4/ApGqjx0zFIIaLJ6wooR1HIoozvj2j6vTi/1fgAz7UYQ==", + "node_modules/@typescript-eslint/utils": { + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.59.2.tgz", + "integrity": "sha512-Juw3EinkXqjaffxz6roowvV7GZT/kET5vSKKZT6upl5TXdWkLkYmNPXwDDL2Vkt2DPn0nODIS4egC/0AGxKo/Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.46.4", - "@typescript-eslint/types": "^8.46.4", - "debug": "^4.3.4" + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.59.2", + "@typescript-eslint/types": "8.59.2", + "@typescript-eslint/typescript-estree": "8.59.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6305,18 +6170,18 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" } }, - "node_modules/@vitest/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "8.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.4.tgz", - "integrity": "sha512-tMDbLGXb1wC+McN1M6QeDx7P7c0UWO5z9CXqp7J8E+xGcJuUuevWKxuG8j41FoweS3+L41SkyKKkia16jpX7CA==", - "dev": true, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.59.2.tgz", + "integrity": "sha512-NwjLUnGy8/Zfx23fl50tRC8rYaYnM52xNRYFAXvmiil9yh1+K6aRVQMnzW6gQB/1DLgWt977lYQn7C+wtgXZiA==", "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.46.4", - "@typescript-eslint/visitor-keys": "8.46.4" + "@typescript-eslint/types": "8.59.2", + "eslint-visitor-keys": "^5.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6326,119 +6191,394 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@vitest/eslint-plugin/node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.4.tgz", - "integrity": "sha512-+/XqaZPIAk6Cjg7NWgSGe27X4zMGqrFqZ8atJsX3CWxH/jACqWnrWI68h7nHQld0y+k9eTTjb9r+KU4twLoo9A==", - "dev": true, - "license": "MIT", + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "license": "Apache-2.0", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" + "url": "https://opencollective.com/eslint" } }, - "node_modules/@vitest/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "8.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.4.tgz", - "integrity": "sha512-USjyxm3gQEePdUwJBFjjGNG18xY9A2grDVGuk7/9AkjIF1L+ZrVnwR5VAU5JXtUnBL/Nwt3H31KlRDaksnM7/w==", + "node_modules/@unrs/resolver-binding-android-arm-eabi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", + "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@vitest/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.4.tgz", - "integrity": "sha512-7oV2qEOr1d4NWNmpXLR35LvCfOkTNymY9oyW+lUHkmCno7aOmIf/hMaydnJBUTBMRCOGZh8YjkFOc8dadEoNGA==", + "node_modules/@unrs/resolver-binding-android-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", + "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@typescript-eslint/project-service": "8.46.4", - "@typescript-eslint/tsconfig-utils": "8.46.4", - "@typescript-eslint/types": "8.46.4", - "@typescript-eslint/visitor-keys": "8.46.4", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^2.1.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" - } + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@vitest/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "8.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.4.tgz", - "integrity": "sha512-AbSv11fklGXV6T28dp2Me04Uw90R2iJ30g2bgLz529Koehrmkbs1r7paFqr1vPCZi7hHwYxYtxfyQMRC8QaVSg==", + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", + "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.46.4", - "@typescript-eslint/types": "8.46.4", - "@typescript-eslint/typescript-estree": "8.46.4" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@vitest/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.4.tgz", - "integrity": "sha512-/++5CYLQqsO9HFGLI7APrxBJYo+5OCMpViuhV8q5/Qa3o5mMrF//eQHks+PXcsAVaLdn817fMuS7zqoXNNZGaw==", + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", + "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.46.4", - "eslint-visitor-keys": "^4.2.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@vitest/eslint-plugin/node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", + "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", + "cpu": [ + "x64" + ], "dev": true, - "license": "Apache-2.0", + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", + "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", + "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", + "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", + "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", + "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", + "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", + "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", + "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", + "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", + "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", + "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.2.11" + }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", + "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@tybys/wasm-util": "^0.10.0" + } + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi/node_modules/@tybys/wasm-util": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz", + "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", + "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", + "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", + "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@vitest/coverage-v8": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.2.4.tgz", + "integrity": "sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.3.0", + "@bcoe/v8-coverage": "^1.0.2", + "ast-v8-to-istanbul": "^0.3.3", + "debug": "^4.4.1", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^5.0.6", + "istanbul-reports": "^3.1.7", + "magic-string": "^0.30.17", + "magicast": "^0.3.5", + "std-env": "^3.9.0", + "test-exclude": "^7.0.1", + "tinyrainbow": "^2.0.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "3.2.4", + "vitest": "3.2.4" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } + } + }, + "node_modules/@vitest/eslint-plugin": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@vitest/eslint-plugin/-/eslint-plugin-1.4.3.tgz", + "integrity": "sha512-ba+YDKyZdViNAOg8P86a9tIEawPA/O+nLbwhg8g7nkqsLOAVum6GoZhkNxgwX621oqWAbB8N2xb+G5kkpXehcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "^8.46.1", + "@typescript-eslint/utils": "^8.46.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "eslint": ">=8.57.0", + "typescript": ">=5.0.0", + "vitest": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vitest": { + "optional": true + } } }, "node_modules/@vitest/expect": { @@ -7118,23 +7258,6 @@ "dev": true, "license": "Python-2.0" }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", - "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "is-array-buffer": "^3.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/array-differ": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", @@ -7162,29 +7285,6 @@ "dev": true, "license": "MIT" }, - "node_modules/array-includes": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", - "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.24.0", - "es-object-atoms": "^1.1.1", - "get-intrinsic": "^1.3.0", - "is-string": "^1.1.1", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -7195,88 +7295,6 @@ "node": ">=8" } }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", - "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "es-shim-unscopables": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", - "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", - "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", - "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/arrgv": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/arrgv/-/arrgv-1.0.2.tgz", @@ -7354,16 +7372,6 @@ "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", "license": "MIT" }, - "node_modules/async-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", - "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/async-sema": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/async-sema/-/async-sema-3.1.1.tgz", @@ -7628,22 +7636,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/axios": { "version": "1.12.2", "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz", @@ -8381,25 +8373,6 @@ "node": ">=6" } }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/call-bind-apply-helpers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", @@ -8413,23 +8386,6 @@ "node": ">= 0.4" } }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/callsite": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", @@ -9171,6 +9127,16 @@ "node": ">=14" } }, + "node_modules/comment-parser": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.6.tgz", + "integrity": "sha512-ObxuY6vnbWTN6Od72xfwN9DbzC7Y2vv8u1Soi9ahRKL37gb6y1qk6/dgjs+3JWuXJHWvsg3BXIwzd/rkmAwavg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12.0.0" + } + }, "node_modules/common-ancestor-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", @@ -10060,87 +10026,33 @@ "node_modules/currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-find-index": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/data-view-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", - "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", - "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" + "array-find-index": "^1.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/inspect-js" + "node": ">=0.10.0" } }, - "node_modules/data-view-byte-offset": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", - "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "node_modules/dargs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", "dev": true, "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", + "engines": { + "node": ">= 12" } }, "node_modules/date-time": { @@ -10167,9 +10079,9 @@ } }, "node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -10562,24 +10474,6 @@ "node": ">=10" } }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -10590,24 +10484,6 @@ "node": ">=8" } }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -10814,19 +10690,6 @@ "node": ">=8" } }, - "node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/dot-prop": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-9.0.0.tgz", @@ -11083,75 +10946,6 @@ "stackframe": "^1.3.4" } }, - "node_modules/es-abstract": { - "version": "1.24.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", - "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.2", - "arraybuffer.prototype.slice": "^1.0.4", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "data-view-buffer": "^1.0.2", - "data-view-byte-length": "^1.0.2", - "data-view-byte-offset": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "es-set-tostringtag": "^2.1.0", - "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.3.0", - "get-proto": "^1.0.1", - "get-symbol-description": "^1.1.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.5", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.2", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.2.1", - "is-set": "^2.0.3", - "is-shared-array-buffer": "^1.0.4", - "is-string": "^1.1.1", - "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.1", - "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.4", - "object-keys": "^1.1.1", - "object.assign": "^4.1.7", - "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.4", - "safe-array-concat": "^1.1.3", - "safe-push-apply": "^1.0.0", - "safe-regex-test": "^1.1.0", - "set-proto": "^1.0.0", - "stop-iteration-iterator": "^1.1.0", - "string.prototype.trim": "^1.2.10", - "string.prototype.trimend": "^1.0.9", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.3", - "typed-array-byte-length": "^1.0.3", - "typed-array-byte-offset": "^1.0.4", - "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.19" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -11203,37 +10997,6 @@ "node": ">= 0.4" } }, - "node_modules/es-shim-unscopables": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", - "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", - "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/esbuild": { "version": "0.25.12", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", @@ -11289,7 +11052,6 @@ "os": [ "aix" ], - "peer": true, "engines": { "node": ">=18" } @@ -11307,7 +11069,6 @@ "os": [ "android" ], - "peer": true, "engines": { "node": ">=18" } @@ -11325,7 +11086,6 @@ "os": [ "android" ], - "peer": true, "engines": { "node": ">=18" } @@ -11343,7 +11103,6 @@ "os": [ "android" ], - "peer": true, "engines": { "node": ">=18" } @@ -11361,7 +11120,6 @@ "os": [ "darwin" ], - "peer": true, "engines": { "node": ">=18" } @@ -11379,7 +11137,6 @@ "os": [ "darwin" ], - "peer": true, "engines": { "node": ">=18" } @@ -11397,7 +11154,6 @@ "os": [ "freebsd" ], - "peer": true, "engines": { "node": ">=18" } @@ -11415,7 +11171,6 @@ "os": [ "freebsd" ], - "peer": true, "engines": { "node": ">=18" } @@ -11433,7 +11188,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -11451,7 +11205,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -11469,7 +11222,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -11487,7 +11239,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -11505,7 +11256,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -11523,7 +11273,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -11541,7 +11290,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -11559,7 +11307,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -11577,7 +11324,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -11595,7 +11341,6 @@ "os": [ "netbsd" ], - "peer": true, "engines": { "node": ">=18" } @@ -11613,7 +11358,6 @@ "os": [ "netbsd" ], - "peer": true, "engines": { "node": ">=18" } @@ -11631,7 +11375,6 @@ "os": [ "openbsd" ], - "peer": true, "engines": { "node": ">=18" } @@ -11649,7 +11392,6 @@ "os": [ "openbsd" ], - "peer": true, "engines": { "node": ">=18" } @@ -11667,7 +11409,6 @@ "os": [ "openharmony" ], - "peer": true, "engines": { "node": ">=18" } @@ -11685,7 +11426,6 @@ "os": [ "sunos" ], - "peer": true, "engines": { "node": ">=18" } @@ -11703,7 +11443,6 @@ "os": [ "win32" ], - "peer": true, "engines": { "node": ">=18" } @@ -11721,7 +11460,6 @@ "os": [ "win32" ], - "peer": true, "engines": { "node": ">=18" } @@ -11739,7 +11477,6 @@ "os": [ "win32" ], - "peer": true, "engines": { "node": ">=18" } @@ -12044,77 +11781,66 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "node_modules/eslint-import-context": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/eslint-import-context/-/eslint-import-context-0.1.9.tgz", + "integrity": "sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==", "dev": true, "license": "MIT", "dependencies": { - "is-core-module": "^2.16.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" + "get-tsconfig": "^4.10.1", + "stable-hash-x": "^0.2.0" }, "engines": { - "node": ">= 0.4" + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://opencollective.com/eslint-import-context" + }, + "peerDependencies": { + "unrs-resolver": "^1.0.0" + }, + "peerDependenciesMeta": { + "unrs-resolver": { + "optional": true + } } }, - "node_modules/eslint-module-utils": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", - "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", + "node_modules/eslint-import-resolver-typescript": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-4.4.4.tgz", + "integrity": "sha512-1iM2zeBvrYmUNTj2vSC/90JTHDth+dfOfiNKkxApWRsTJYNrc8rOdxxIf5vazX+BiAXTeOT0UvWpGI/7qIWQOw==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "debug": "^3.2.7" + "debug": "^4.4.1", + "eslint-import-context": "^0.1.8", + "get-tsconfig": "^4.10.1", + "is-bun-module": "^2.0.0", + "stable-hash-x": "^0.2.0", + "tinyglobby": "^0.2.14", + "unrs-resolver": "^1.7.11" }, "engines": { - "node": ">=4" + "node": "^16.17.0 || >=18.6.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-import-resolver-typescript" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" }, "peerDependenciesMeta": { - "eslint": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { "optional": true } } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, "node_modules/eslint-plugin-ava": { "version": "15.1.0", "resolved": "https://registry.npmjs.org/eslint-plugin-ava/-/eslint-plugin-ava-15.1.0.tgz", @@ -12160,82 +11886,42 @@ "eslint": ">=8" } }, - "node_modules/eslint-plugin-import": { - "version": "2.32.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", - "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", + "node_modules/eslint-plugin-import-x": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import-x/-/eslint-plugin-import-x-4.16.2.tgz", + "integrity": "sha512-rM9K8UBHcWKpzQzStn1YRN2T5NvdeIfSVoKu/lKF41znQXHAUcBbYXe5wd6GNjZjTrP7viQ49n1D83x/2gYgIw==", "dev": true, "license": "MIT", "dependencies": { - "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.9", - "array.prototype.findlastindex": "^1.2.6", - "array.prototype.flat": "^1.3.3", - "array.prototype.flatmap": "^1.3.3", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.1", - "hasown": "^2.0.2", - "is-core-module": "^2.16.1", + "@package-json/types": "^0.0.12", + "@typescript-eslint/types": "^8.56.0", + "comment-parser": "^1.4.1", + "debug": "^4.4.1", + "eslint-import-context": "^0.1.9", "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "object.groupby": "^1.0.3", - "object.values": "^1.2.1", - "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.9", - "tsconfig-paths": "^3.15.0" + "minimatch": "^9.0.3 || ^10.1.2", + "semver": "^7.7.2", + "stable-hash-x": "^0.2.0", + "unrs-resolver": "^1.9.2" }, "engines": { - "node": ">=4" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-import-x" }, "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" - } - }, - "node_modules/eslint-plugin-import/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" + "@typescript-eslint/utils": "^8.56.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "eslint-import-resolver-node": "*" }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "peerDependenciesMeta": { + "@typescript-eslint/utils": { + "optional": true + }, + "eslint-import-resolver-node": { + "optional": true + } } }, "node_modules/eslint-plugin-n": { @@ -13161,22 +12847,6 @@ } } }, - "node_modules/for-each": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/foreground-child": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", @@ -13398,7 +13068,6 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -13418,37 +13087,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/function.prototype.name": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", - "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "functions-have-names": "^1.2.3", - "hasown": "^2.0.2", - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/get-amd-module-type": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-6.0.1.tgz", @@ -13702,24 +13340,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-symbol-description": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", - "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/get-tsconfig": { "version": "4.10.1", "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz", @@ -13910,34 +13530,17 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, "engines": { - "node": ">= 0.4" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globby": { @@ -14072,13 +13675,6 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "license": "ISC" }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" - }, "node_modules/handlebars": { "version": "4.7.8", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", @@ -14127,19 +13723,6 @@ "url": "https://github.com/chalk/has-ansi?sponsor=1" } }, - "node_modules/has-bigints": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", - "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -14149,35 +13732,6 @@ "node": ">=8" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", - "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-symbols": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", @@ -14844,21 +14398,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/internal-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", - "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/ip-address": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", @@ -14883,24 +14422,6 @@ "node": ">=8" } }, - "node_modules/is-array-buffer": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", - "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -14908,42 +14429,6 @@ "dev": true, "license": "MIT" }, - "node_modules/is-async-function": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", - "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "async-function": "^1.0.0", - "call-bound": "^1.0.3", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", - "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -14957,34 +14442,14 @@ "node": ">=8" } }, - "node_modules/is-boolean-object": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", - "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "node_modules/is-bun-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", + "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "semver": "^7.7.1" } }, "node_modules/is-ci": { @@ -15021,41 +14486,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-data-view": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", - "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", - "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-docker": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", @@ -15097,22 +14527,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-finalizationregistry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", - "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-fullwidth-code-point": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", @@ -15126,25 +14540,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-generator-function": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", - "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-proto": "^1.0.0", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -15174,19 +14569,6 @@ "dev": true, "license": "MIT" }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-natural-number": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", @@ -15194,19 +14576,6 @@ "dev": true, "license": "MIT" }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-network-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz", @@ -15235,23 +14604,6 @@ "node": ">=0.12.0" } }, - "node_modules/is-number-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", - "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", @@ -15303,54 +14655,6 @@ "dev": true, "license": "MIT" }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", - "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-ssh": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.1.tgz", @@ -15365,47 +14669,12 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", - "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", - "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-symbols": "^1.1.0", - "safe-regex-test": "^1.1.0" - }, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-text-path": { @@ -15421,22 +14690,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-unicode-supported": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", @@ -15468,52 +14721,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", - "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", - "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -15527,13 +14734,6 @@ "node": ">=8" } }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true, - "license": "MIT" - }, "node_modules/iserror": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/iserror/-/iserror-0.0.2.tgz", @@ -15937,19 +15137,6 @@ "dev": true, "license": "ISC" }, - "node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, "node_modules/jsonc-parser": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", @@ -18033,6 +17220,22 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/napi-postinstall": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", + "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", + "dev": true, + "license": "MIT", + "bin": { + "napi-postinstall": "lib/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/napi-postinstall" + } + }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -19026,103 +18229,6 @@ "node": ">=0.10.0" } }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", - "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0", - "has-symbols": "^1.1.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", - "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.values": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", - "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/omit.js": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/omit.js/-/omit.js-2.0.2.tgz", @@ -19341,24 +18447,6 @@ "dev": true, "license": "MIT" }, - "node_modules/own-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", - "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.6", - "object-keys": "^1.1.1", - "safe-push-apply": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/oxfmt": { "version": "0.46.0", "resolved": "https://registry.npmjs.org/oxfmt/-/oxfmt-0.46.0.tgz", @@ -20291,16 +19379,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/possible-typed-array-names": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", - "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/postcss": { "version": "8.5.6", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", @@ -21191,50 +20269,6 @@ "esprima": "~4.0.0" } }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", - "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.1", - "which-builtin-type": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", - "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -21553,26 +20587,6 @@ "tslib": "^2.1.0" } }, - "node_modules/safe-array-concat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", - "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "has-symbols": "^1.1.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -21599,41 +20613,6 @@ "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", "license": "MIT" }, - "node_modules/safe-push-apply": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", - "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-regex-test": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", - "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-regex": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/safe-stable-stringify": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", @@ -21673,9 +20652,9 @@ "license": "MIT" }, "node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -21721,64 +20700,15 @@ "license": "ISC" }, "node_modules/set-error-message": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-error-message/-/set-error-message-2.0.1.tgz", - "integrity": "sha512-s/eeP0f4ed1S3fl0KbxZoy5Pbeg5D6Nbple9nut4VPwHTvEIk5r7vKq0FwjNjszdUPdlTrs4GJCOkWUqWeTeWg==", - "license": "MIT", - "dependencies": { - "normalize-exception": "^3.0.0" - }, - "engines": { - "node": ">=16.17.0" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-proto": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", - "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", - "dev": true, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-error-message/-/set-error-message-2.0.1.tgz", + "integrity": "sha512-s/eeP0f4ed1S3fl0KbxZoy5Pbeg5D6Nbple9nut4VPwHTvEIk5r7vKq0FwjNjszdUPdlTrs4GJCOkWUqWeTeWg==", "license": "MIT", "dependencies": { - "dunder-proto": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0" + "normalize-exception": "^3.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=16.17.0" } }, "node_modules/setimmediate": { @@ -21841,82 +20771,6 @@ "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==", "license": "BSD-2-Clause" }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/siginfo": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", @@ -22224,6 +21078,16 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/stable-hash-x": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/stable-hash-x/-/stable-hash-x-0.2.0.tgz", + "integrity": "sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/stack-generator": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz", @@ -22286,20 +21150,6 @@ "dev": true, "license": "MIT" }, - "node_modules/stop-iteration-iterator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", - "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "internal-slot": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/streamx": { "version": "2.22.0", "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.0.tgz", @@ -22403,65 +21253,6 @@ "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", "license": "MIT" }, - "node_modules/string.prototype.trim": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", - "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-data-property": "^1.1.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-object-atoms": "^1.0.0", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", - "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/strip-ansi": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", @@ -22991,7 +21782,6 @@ "version": "0.2.15", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", - "dev": true, "license": "MIT", "dependencies": { "fdir": "^6.5.0", @@ -23147,9 +21937,9 @@ } }, "node_modules/ts-api-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", - "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", "license": "MIT", "engines": { "node": ">=18.12" @@ -23233,29 +22023,6 @@ "node": ">=0.3.1" } }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/tsd": { "version": "0.33.0", "resolved": "https://registry.npmjs.org/tsd/-/tsd-0.33.0.tgz", @@ -23566,84 +22333,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/typed-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", - "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", - "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", - "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.15", - "reflect.getprototypeof": "^1.0.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", - "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0", - "reflect.getprototypeof": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -23665,15 +22354,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.35.1", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.35.1.tgz", - "integrity": "sha512-xslJjFzhOmHYQzSB/QTeASAHbjmxOGEP6Coh93TXmUBFQoJ1VU35UHIDmG06Jd6taf3wqqC1ntBnCMeymy5Ovw==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.59.2.tgz", + "integrity": "sha512-pJw051uomb3ZeCzGTpRb8RbEqB5Y4WWet8gl/GcTlU35BSx0PVdZ86/bqkQCyKKuraVQEK7r6kBHQXF+fBhkoQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.35.1", - "@typescript-eslint/parser": "8.35.1", - "@typescript-eslint/utils": "8.35.1" + "@typescript-eslint/eslint-plugin": "8.59.2", + "@typescript-eslint/parser": "8.59.2", + "@typescript-eslint/typescript-estree": "8.59.2", + "@typescript-eslint/utils": "8.59.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -23683,8 +22373,8 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/uglify-js": { @@ -23701,25 +22391,6 @@ "node": ">=0.8.0" } }, - "node_modules/unbox-primitive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", - "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-bigints": "^1.0.2", - "has-symbols": "^1.1.0", - "which-boxed-primitive": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/unbzip2-stream": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", @@ -23840,6 +22511,41 @@ "node": ">=0.10.0" } }, + "node_modules/unrs-resolver": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", + "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "napi-postinstall": "^0.3.0" + }, + "funding": { + "url": "https://opencollective.com/unrs-resolver" + }, + "optionalDependencies": { + "@unrs/resolver-binding-android-arm-eabi": "1.11.1", + "@unrs/resolver-binding-android-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-x64": "1.11.1", + "@unrs/resolver-binding-freebsd-x64": "1.11.1", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", + "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-musl": "1.11.1", + "@unrs/resolver-binding-wasm32-wasi": "1.11.1", + "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", + "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", + "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" + } + }, "node_modules/upath": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", @@ -24252,95 +22958,6 @@ "node": ">= 8" } }, - "node_modules/which-boxed-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", - "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-bigint": "^1.1.0", - "is-boolean-object": "^1.2.1", - "is-number-object": "^1.1.1", - "is-string": "^1.1.1", - "is-symbol": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", - "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "function.prototype.name": "^1.1.6", - "has-tostringtag": "^1.0.2", - "is-async-function": "^2.0.0", - "is-date-object": "^1.1.0", - "is-finalizationregistry": "^1.1.0", - "is-generator-function": "^1.0.10", - "is-regex": "^1.2.1", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.1.0", - "which-collection": "^1.0.2", - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.19", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", - "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "for-each": "^0.3.5", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/why-is-node-running": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", diff --git a/package.json b/package.json index e5a8daa8b8..d776338a80 100644 --- a/package.json +++ b/package.json @@ -50,16 +50,16 @@ "@commitlint/config-conventional": "^19.0.0", "@eslint/compat": "^1.2.9", "@eslint/js": "^9.28.0", - "@typescript-eslint/eslint-plugin": "^8.34.0", "@vitest/eslint-plugin": "^1.2.1", "eslint": "^9.28.0", + "eslint-import-resolver-typescript": "^4.4.4", "eslint-plugin-ava": "^15.0.1", - "eslint-plugin-import": "^2.31.0", + "eslint-plugin-import-x": "^4.16.2", "eslint-plugin-n": "^17.19.0", "execa": "^8.0.1", "lerna": "^8.2.2", "oxfmt": "^0.46.0", - "typescript-eslint": "^8.34.0" + "typescript-eslint": "^8.59.2" }, "engines": { "node": ">=18.14.0" diff --git a/packages/build-info/src/file-system.ts b/packages/build-info/src/file-system.ts index 65e1a57650..1ad76c57b7 100644 --- a/packages/build-info/src/file-system.ts +++ b/packages/build-info/src/file-system.ts @@ -50,7 +50,7 @@ function normalizePathSegments(parts: string[], allowAboveRoot: boolean) { /** A platform independent version of path.normalize() */ export function normalize(path: string): string { const isAbsolute = path.startsWith('/') - const trailingSlash = path && path[path.length - 1] === '/' + const trailingSlash = path?.[path.length - 1] === '/' // Normalize the path path = normalizePathSegments(path.split('/'), !isAbsolute).join('/') diff --git a/packages/build-info/src/node/file-system.ts b/packages/build-info/src/node/file-system.ts index 75919cfa71..7573e8e467 100644 --- a/packages/build-info/src/node/file-system.ts +++ b/packages/build-info/src/node/file-system.ts @@ -64,7 +64,7 @@ export class NodeFS extends FileSystem { } async readFile(path: string): Promise { - return (await fs.readFile(resolve(path), 'utf-8')).toString() + return await fs.readFile(resolve(path), 'utf-8') } /** Node implementation of finding a file or directory by walking up parent directories. */ diff --git a/packages/build-info/src/workspaces/get-workspace-packages.ts b/packages/build-info/src/workspaces/get-workspace-packages.ts index 60e3e7f19a..26ea27c689 100644 --- a/packages/build-info/src/workspaces/get-workspace-packages.ts +++ b/packages/build-info/src/workspaces/get-workspace-packages.ts @@ -99,7 +99,7 @@ export async function getWorkspacePackages(project: Project, patterns: string[] // perform a parallel detection of all workspace packages const results = ( await Promise.all( - patterns.map((pattern) => { + patterns.map(async (pattern) => { const cleanedPattern = pattern.replace(/^!?(\.\/)/, (match, p1) => match.replace(p1, '')) const matcher = new Minimatch(cleanedPattern) if (matcher.negate) { diff --git a/packages/build-info/tests/mock-file-system.ts b/packages/build-info/tests/mock-file-system.ts index 65265fd2fa..64fb264571 100644 --- a/packages/build-info/tests/mock-file-system.ts +++ b/packages/build-info/tests/mock-file-system.ts @@ -2,7 +2,7 @@ import fs from 'fs' import { platform } from 'os' import { join } from 'path' -import memfs from 'memfs' +import * as memfs from 'memfs' import { vi } from 'vitest' export const osHomeDir = platform() === 'win32' ? 'C:\\Users\\test-user' : '/home/test-user' diff --git a/packages/build/src/core/main.ts b/packages/build/src/core/main.ts index 95c167e69a..f30c033c64 100644 --- a/packages/build/src/core/main.ts +++ b/packages/build/src/core/main.ts @@ -128,7 +128,7 @@ export async function buildSite(flags: Partial = {}): Promise<{ generatedFunctions: getGeneratedFunctions(returnValues), } } catch (error) { - const { severity } = await handleBuildError(error, errorParams as any) + const { severity } = await handleBuildError(error, errorParams) const { pluginsOptions, siteInfo, userNodeVersion }: any = errorParams const { success, severityCode, status } = getSeverity(severity) span.setAttributes({ diff --git a/packages/build/src/core/types.ts b/packages/build/src/core/types.ts index 869db0aac3..ec6d9b6eb0 100644 --- a/packages/build/src/core/types.ts +++ b/packages/build/src/core/types.ts @@ -1,4 +1,5 @@ -import { NetlifyConfig, NetlifyPlugin } from '../index.js' +import { NetlifyPlugin } from '../types/netlify_plugin.js' +import { NetlifyConfig } from '../types/config/netlify_config.js' export type Mode = 'buildbot' | 'cli' | 'require' diff --git a/packages/build/src/core/user_node_version.js b/packages/build/src/core/user_node_version.js index d95b0ce3d0..844baab95b 100644 --- a/packages/build/src/core/user_node_version.js +++ b/packages/build/src/core/user_node_version.js @@ -1,7 +1,7 @@ import { version as currentVersion, execPath } from 'process' import { execa } from 'execa' -import semver from 'semver' +import * as semver from 'semver' import { addErrorInfo } from '../error/info.js' diff --git a/packages/build/src/error/parse/parse.ts b/packages/build/src/error/parse/parse.ts index 0e81160b13..e3b1a34e1e 100644 --- a/packages/build/src/error/parse/parse.ts +++ b/packages/build/src/error/parse/parse.ts @@ -26,7 +26,7 @@ export const getFullErrorInfo = function ({ error, colors, debug }): BuildError errorMetadata, } = basicErrorInfo - const { location = {}, plugin = {}, tsConfig } = errorInfo + const { location, plugin = {}, tsConfig } = errorInfo const titleA = getTitle(title, errorInfo) diff --git a/packages/build/src/error/types.ts b/packages/build/src/error/types.ts index 633d0cc61b..6948258ba9 100644 --- a/packages/build/src/error/types.ts +++ b/packages/build/src/error/types.ts @@ -386,7 +386,7 @@ const TYPES: { [T in ErrorTypes]: ErrorType } = { return `Bundling of function "${functionName}" failed` }, - group: ({ location: { functionType = 'serverless' } }: { location: FunctionsBundlingLocation }) => + group: ({ location: { functionType } }: { location: FunctionsBundlingLocation }) => `Bundling of ${functionType} function failed`, stackType: 'none', locationType: 'functionsBundling', diff --git a/packages/build/src/log/logger.ts b/packages/build/src/log/logger.ts index b6199e1eb7..004f96c695 100644 --- a/packages/build/src/log/logger.ts +++ b/packages/build/src/log/logger.ts @@ -53,7 +53,7 @@ export const log = function ( ) { const { indent = false, color } = config const stringA = indent ? indentString(string, INDENT_SIZE) : string - const stringB = String(stringA).replace(EMPTY_LINES_REGEXP, EMPTY_LINE) + const stringB = stringA.replace(EMPTY_LINES_REGEXP, EMPTY_LINE) const stringC = color === undefined ? stringB : color(stringB) if (logs && logs.outputFlusher) { diff --git a/packages/build/src/log/messages/compatibility.ts b/packages/build/src/log/messages/compatibility.ts index b2d618e72c..99688b0f2b 100644 --- a/packages/build/src/log/messages/compatibility.ts +++ b/packages/build/src/log/messages/compatibility.ts @@ -1,4 +1,4 @@ -import semver from 'semver' +import * as semver from 'semver' import { isRuntime } from '../../utils/runtime.js' import { isPreviousMajor } from '../../utils/semver.js' diff --git a/packages/build/src/plugins/child/utils.ts b/packages/build/src/plugins/child/utils.ts index d3493cdbc7..29e1070e01 100644 --- a/packages/build/src/plugins/child/utils.ts +++ b/packages/build/src/plugins/child/utils.ts @@ -26,7 +26,7 @@ export const getUtils = function ({ constants: { FUNCTIONS_SRC, INTERNAL_FUNCTIONS_SRC, CACHE_DIR }, generatedFunctions = [], runState, - deployEnvVars = [], + deployEnvVars, }: { event: BuildEvent constants: NetlifyPluginConstants diff --git a/packages/build/src/plugins/compatibility.ts b/packages/build/src/plugins/compatibility.ts index 68f6272cac..61ef288227 100644 --- a/packages/build/src/plugins/compatibility.ts +++ b/packages/build/src/plugins/compatibility.ts @@ -1,6 +1,6 @@ import pLocate from 'p-locate' import { type PackageJson } from 'read-package-up' -import semver from 'semver' +import * as semver from 'semver' import { FeatureFlags } from '../core/feature_flags.js' import { SystemLogger } from '../plugins_core/types.js' @@ -47,7 +47,7 @@ export const getExpectedVersion = async function ({ selected */ authoritative?: boolean }) { - const { version, conditions = [] } = await getCompatibleEntry({ + const { version, conditions } = await getCompatibleEntry({ versions, nodeVersion, packageJson, diff --git a/packages/build/src/plugins/expected_version.ts b/packages/build/src/plugins/expected_version.ts index aa192001d0..e18aa57f69 100644 --- a/packages/build/src/plugins/expected_version.ts +++ b/packages/build/src/plugins/expected_version.ts @@ -1,5 +1,5 @@ import { type PackageJson } from 'read-package-up' -import semver from 'semver' +import * as semver from 'semver' import { FeatureFlags } from '../core/feature_flags.js' import { addErrorInfo } from '../error/info.js' diff --git a/packages/build/src/plugins/internal.ts b/packages/build/src/plugins/internal.ts index aef628eb44..75109134f2 100644 --- a/packages/build/src/plugins/internal.ts +++ b/packages/build/src/plugins/internal.ts @@ -10,3 +10,5 @@ const NETLIFY_MAINTAINED_PLUGINS = new Set([ export const isNetlifyMaintainedPlugin = (pluginPackage: string): boolean => NETLIFY_MAINTAINED_PLUGINS.has(pluginPackage) + +export const isTrustedPlugin = (packageName: string | undefined) => packageName?.startsWith('@netlify/') diff --git a/packages/build/src/plugins/list.ts b/packages/build/src/plugins/list.ts index 537ffc9de7..82d43720f6 100644 --- a/packages/build/src/plugins/list.ts +++ b/packages/build/src/plugins/list.ts @@ -127,7 +127,7 @@ const normalizePluginsList = function (pluginsList: PluginListEntry[]) { // When `compatability` array is present it takes precedence, otherwise top-level `version` field is used as latest version // Plugin data comes from @netlify/plugins -const normalizePluginItem = function ({ package: packageName, version, compatibility = [] }: PluginListEntry) { +const normalizePluginItem = function ({ package: packageName, version, compatibility }: PluginListEntry) { const versions = compatibility.length === 0 ? [{ version }] : compatibility const versionsA = versions.map(normalizeCompatVersion) return [packageName, versionsA] as const diff --git a/packages/build/src/plugins/node_version.ts b/packages/build/src/plugins/node_version.ts index 3a1b0224c4..88b76e2257 100644 --- a/packages/build/src/plugins/node_version.ts +++ b/packages/build/src/plugins/node_version.ts @@ -1,6 +1,6 @@ import { execPath, version as currentVersion } from 'process' -import semver from 'semver' +import * as semver from 'semver' import link from 'terminal-link' import { logWarning, logWarningSubHeader } from '../log/logger.js' diff --git a/packages/build/src/plugins/options.ts b/packages/build/src/plugins/options.ts index aaac9a2ae3..4e876ae6f6 100644 --- a/packages/build/src/plugins/options.ts +++ b/packages/build/src/plugins/options.ts @@ -1,7 +1,7 @@ import { dirname } from 'path' import { type PackageJson } from 'read-package-up' -import semver from 'semver' +import * as semver from 'semver' import { addErrorInfo } from '../error/info.js' import { installLocalPluginsDependencies } from '../install/local.js' diff --git a/packages/build/src/plugins/plugin_conditions.ts b/packages/build/src/plugins/plugin_conditions.ts index 535686e806..0676ae0311 100644 --- a/packages/build/src/plugins/plugin_conditions.ts +++ b/packages/build/src/plugins/plugin_conditions.ts @@ -1,7 +1,7 @@ import { join } from 'path' import { type PackageJson } from 'read-package-up' -import semver from 'semver' +import * as semver from 'semver' import { importJsonFile } from '../utils/json.js' import { resolvePath } from '../utils/resolve.js' diff --git a/packages/build/src/plugins/spawn.ts b/packages/build/src/plugins/spawn.ts index 4f07c87f25..b0e30f6ae9 100644 --- a/packages/build/src/plugins/spawn.ts +++ b/packages/build/src/plugins/spawn.ts @@ -9,7 +9,7 @@ import { gte, satisfies } from 'semver' import { FeatureFlags } from '../core/feature_flags.js' import { addErrorInfo } from '../error/info.js' -import { NetlifyConfig } from '../index.js' +import { NetlifyConfig } from '../types/config/netlify_config.js' import { BufferedLogs } from '../log/logger.js' import { logIncompatiblePlugins, diff --git a/packages/build/src/plugins_core/frameworks_api/index.ts b/packages/build/src/plugins_core/frameworks_api/index.ts index b4ae6a2f11..3b9ecbca76 100644 --- a/packages/build/src/plugins_core/frameworks_api/index.ts +++ b/packages/build/src/plugins_core/frameworks_api/index.ts @@ -55,14 +55,7 @@ const handleSkewProtection = async (buildDir: string, packagePath?: string) => { } } -const coreStep: CoreStepFunction = async function ({ - buildDir, - netlifyConfig, - packagePath, - systemLog = () => { - // no-op - }, -}) { +const coreStep: CoreStepFunction = async function ({ buildDir, netlifyConfig, packagePath, systemLog }) { await handleSkewProtection(buildDir, packagePath) let config: Partial | undefined diff --git a/packages/build/src/plugins_core/functions/zisi.ts b/packages/build/src/plugins_core/functions/zisi.ts index 9d4f401e2a..e255c9fcd1 100644 --- a/packages/build/src/plugins_core/functions/zisi.ts +++ b/packages/build/src/plugins_core/functions/zisi.ts @@ -1,7 +1,7 @@ import { join, resolve } from 'path' import { type FunctionConfig, type ZipFunctionsOptions } from '@netlify/zip-it-and-ship-it' -import semver from 'semver' +import * as semver from 'semver' import type { FeatureFlags } from '../../core/feature_flags.js' @@ -83,7 +83,7 @@ export const getZisiParameters = ({ // translation here. export const normalizeFunctionConfig = ({ buildDir, - functionConfig = {}, + functionConfig, isRunningLocally, nodeVersion, }: { diff --git a/packages/build/src/plugins_core/types.ts b/packages/build/src/plugins_core/types.ts index dbb788fb3a..ae74419982 100644 --- a/packages/build/src/plugins_core/types.ts +++ b/packages/build/src/plugins_core/types.ts @@ -1,4 +1,4 @@ -import { type DynamicMethods } from 'packages/js-client/lib/types.js' +import { type DynamicMethods } from '@netlify/api/lib/types.js' import { NetlifyPluginConstants } from '../core/constants.js' import { BufferedLogs } from '../log/logger.js' diff --git a/packages/build/src/status/validations.ts b/packages/build/src/status/validations.ts index d1116c3d49..a81719134c 100644 --- a/packages/build/src/status/validations.ts +++ b/packages/build/src/status/validations.ts @@ -1,4 +1,4 @@ -import { DynamicMethods } from 'packages/js-client/lib/types.js' +import { type DynamicMethods } from '@netlify/api/lib/types.js' import { SecretScanResult } from '../plugins_core/secrets_scanning/utils.js' import { SystemLogger } from '../plugins_core/types.js' diff --git a/packages/build/src/steps/error.ts b/packages/build/src/steps/error.ts index 11469cb3e2..c6c9ea4903 100644 --- a/packages/build/src/steps/error.ts +++ b/packages/build/src/steps/error.ts @@ -8,8 +8,7 @@ import { serializeErrorStatus } from '../error/parse/serialize_status.js' import { BuildError, isPluginLocation, PluginLocation, ErrorTypes } from '../error/types.js' import { isSoftFailEvent } from '../plugins/events.js' import { addBuildErrorToActiveSpan } from '../tracing/main.js' - -import { isTrustedPlugin } from './plugin.js' +import { isTrustedPlugin } from '../plugins/internal.js' /** * Handle build command errors and plugin errors: diff --git a/packages/build/src/steps/plugin.js b/packages/build/src/steps/plugin.js index ebcf99f5da..7c80c2f651 100644 --- a/packages/build/src/steps/plugin.js +++ b/packages/build/src/steps/plugin.js @@ -5,13 +5,14 @@ import { addOutputFlusher } from '../log/logger.js' import { logStepCompleted } from '../log/messages/ipc.js' import { getStandardStreams } from '../log/output_flusher.js' import { pipePluginOutput, unpipePluginOutput } from '../log/stream.js' +import { isTrustedPlugin } from '../plugins/internal.js' import { callChild } from '../plugins/ipc.js' import { getSuccessStatus } from '../status/success.js' import { getPluginErrorType } from './error.js' import { updateNetlifyConfig, listConfigSideFiles } from './update_config.js' -export const isTrustedPlugin = (packageName) => packageName?.startsWith('@netlify/') +export { isTrustedPlugin } // Fire a plugin step export const firePluginStep = async function ({ diff --git a/packages/build/src/time/main.ts b/packages/build/src/time/main.ts index 5a538fbb29..f09e7cc6fe 100644 --- a/packages/build/src/time/main.ts +++ b/packages/build/src/time/main.ts @@ -49,12 +49,7 @@ export const measureDuration = keepFuncProps(kMeasureDuration) export const createTimer = function ( stageTag, durationNs, - { - metricName = DEFAULT_METRIC_NAME, - parentTag = TOP_PARENT_TAG, - category = undefined, - tags = undefined, - }: MeasureDurationOptions = {}, + { metricName = DEFAULT_METRIC_NAME, parentTag = TOP_PARENT_TAG, category, tags }: MeasureDurationOptions = {}, ) { return { metricName, stageTag, parentTag, durationNs, category, tags } } diff --git a/packages/build/src/utils/semver.js b/packages/build/src/utils/semver.js index 15bb9b0764..9fc3ec0dab 100644 --- a/packages/build/src/utils/semver.js +++ b/packages/build/src/utils/semver.js @@ -1,4 +1,4 @@ -import semver from 'semver' +import * as semver from 'semver' // Compare two versions by their major versions. // Takes into account the special rules for `0.*.*` and `0.0.*` versions. diff --git a/packages/build/tests/blobs_upload/tests.js b/packages/build/tests/blobs_upload/tests.js index 75ac5ee660..1710ec0e8f 100644 --- a/packages/build/tests/blobs_upload/tests.js +++ b/packages/build/tests/blobs_upload/tests.js @@ -8,9 +8,9 @@ import { BlobsServer } from '@netlify/blobs/server' import { Fixture } from '@netlify/testing' import test from 'ava' import getPort from 'get-port' -import semver from 'semver' +import * as semver from 'semver' import { spyOn } from 'tinyspy' -import tmp from 'tmp-promise' +import * as tmp from 'tmp-promise' const TOKEN = 'test' diff --git a/packages/build/tests/core/tests.js b/packages/build/tests/core/tests.js index 3114d34739..1fbf600f1f 100644 --- a/packages/build/tests/core/tests.js +++ b/packages/build/tests/core/tests.js @@ -8,7 +8,7 @@ import test from 'ava' import getNode from 'get-node' import { memoize } from 'micro-memoize' import { pathExists } from 'path-exists' -import semver from 'semver' +import * as semver from 'semver' import { spy, spyOn } from 'tinyspy' import { tmpName } from 'tmp-promise' diff --git a/packages/build/tests/edge_functions/tests.js b/packages/build/tests/edge_functions/tests.js index 8736f11632..5d9b91f27f 100644 --- a/packages/build/tests/edge_functions/tests.js +++ b/packages/build/tests/edge_functions/tests.js @@ -7,8 +7,8 @@ import { DenoBridge } from '@netlify/edge-bundler' import { Fixture, normalizeOutput } from '@netlify/testing' import test from 'ava' import { pathExists } from 'path-exists' -import semver from 'semver' -import tmp from 'tmp-promise' +import * as semver from 'semver' +import * as tmp from 'tmp-promise' import { importJsonFile } from '../../lib/utils/json.js' diff --git a/packages/build/tests/frameworks_api/tests.js b/packages/build/tests/frameworks_api/tests.js index 09b27b61be..a1290ccf02 100644 --- a/packages/build/tests/frameworks_api/tests.js +++ b/packages/build/tests/frameworks_api/tests.js @@ -4,8 +4,8 @@ import { platform, version as nodeVersion } from 'process' import { Fixture } from '@netlify/testing' import test from 'ava' -import semver from 'semver' -import tmp from 'tmp-promise' +import * as semver from 'semver' +import * as tmp from 'tmp-promise' test('Does not mutate read-only properties', async (t) => { const { netlifyConfig } = await new Fixture('./fixtures/readonly_properties').runWithBuildAndIntrospect() diff --git a/packages/build/tests/functions/tests.js b/packages/build/tests/functions/tests.js index 57f86829ed..54032b0fd7 100644 --- a/packages/build/tests/functions/tests.js +++ b/packages/build/tests/functions/tests.js @@ -6,7 +6,7 @@ import { fileURLToPath } from 'url' import { Fixture, normalizeOutput, removeDir, getTempName, unzipFile } from '@netlify/testing' import test from 'ava' import { pathExists } from 'path-exists' -import semver from 'semver' +import * as semver from 'semver' const FIXTURES_DIR = fileURLToPath(new URL('fixtures', import.meta.url)) diff --git a/packages/build/tests/mutate_save/tests.js b/packages/build/tests/mutate_save/tests.js index dbc9385cb1..09c3435ee3 100644 --- a/packages/build/tests/mutate_save/tests.js +++ b/packages/build/tests/mutate_save/tests.js @@ -5,7 +5,7 @@ import { fileURLToPath } from 'url' import { Fixture, normalizeOutput, startTcpServer } from '@netlify/testing' import test from 'ava' import { pathExists } from 'path-exists' -import tmp from 'tmp-promise' +import * as tmp from 'tmp-promise' const FIXTURES_DIR = fileURLToPath(new URL('fixtures', import.meta.url)) diff --git a/packages/build/tests/plugins/tests.js b/packages/build/tests/plugins/tests.js index 2a2285f4bd..b6e1a0a0d7 100644 --- a/packages/build/tests/plugins/tests.js +++ b/packages/build/tests/plugins/tests.js @@ -5,7 +5,8 @@ import { fileURLToPath } from 'node:url' import { Fixture, normalizeOutput, removeDir, startServer } from '@netlify/testing' import test from 'ava' import getPort from 'get-port' -import tmp, { tmpName } from 'tmp-promise' +import * as tmp from 'tmp-promise' +import { tmpName } from 'tmp-promise' import { DEFAULT_FEATURE_FLAGS } from '../../lib/core/feature_flags.js' diff --git a/packages/build/tests/unit/logger/tests.js b/packages/build/tests/unit/logger/tests.js index df09e3cbea..3c22cfdab2 100644 --- a/packages/build/tests/unit/logger/tests.js +++ b/packages/build/tests/unit/logger/tests.js @@ -2,7 +2,7 @@ import { promises as fs } from 'fs' import { normalizeOutput } from '@netlify/testing' import test from 'ava' -import tmp from 'tmp-promise' +import * as tmp from 'tmp-promise' import { getSystemLogger } from '../../../lib/log/logger.js' diff --git a/packages/config/src/case.ts b/packages/config/src/case.ts index 0bbdad2180..b1c6cf1bd2 100644 --- a/packages/config/src/case.ts +++ b/packages/config/src/case.ts @@ -1,7 +1,7 @@ // Some properties can be optionally capitalized. We normalize them to lowercase export const normalizeConfigCase = function ({ Build, - build = Build, + build, ...config }: { Build: Record diff --git a/packages/config/src/env/main.ts b/packages/config/src/env/main.ts index 4a8cab1608..c5db8051a9 100644 --- a/packages/config/src/env/main.ts +++ b/packages/config/src/env/main.ts @@ -151,11 +151,7 @@ const getInternalEnv = function ( } const getDeployUrls = function ({ - siteInfo: { - name = DEFAULT_SITE_NAME, - ssl_url: sslUrl, - build_settings: { repo_url: REPOSITORY_URL = undefined } = {}, - }, + siteInfo: { name = DEFAULT_SITE_NAME, ssl_url: sslUrl, build_settings: { repo_url: REPOSITORY_URL } = {} }, branch, deployId, }) { diff --git a/packages/config/src/mutations/config_prop_name.ts b/packages/config/src/mutations/config_prop_name.ts index af1f6e2e84..b8706f45a5 100644 --- a/packages/config/src/mutations/config_prop_name.ts +++ b/packages/config/src/mutations/config_prop_name.ts @@ -8,7 +8,7 @@ export const getPropName = function (keys: string[]) { // is an array index. // In those cases, we replace it by "*". return keys.reduce((propName, key) => { - const normalizedKey = Number.isInteger(key) || DYNAMIC_OBJECT_PROPS.has(propName) ? '*' : String(key) + const normalizedKey = Number.isInteger(key) || DYNAMIC_OBJECT_PROPS.has(propName) ? '*' : key return propName === '' ? normalizedKey : `${propName}.${normalizedKey}` }, '') } diff --git a/packages/config/src/validate/validations.js b/packages/config/src/validate/validations.js index f66d65e0dd..bf5ebd62da 100644 --- a/packages/config/src/validate/validations.js +++ b/packages/config/src/validate/validations.js @@ -1,4 +1,4 @@ -import CronParser from 'cron-parser' +import * as CronParser from 'cron-parser' import isPlainObj from 'is-plain-obj' import validateNpmPackageName from 'validate-npm-package-name' diff --git a/packages/edge-bundler/node/bridge.test.ts b/packages/edge-bundler/node/bridge.test.ts index 8e51893be1..2655045256 100644 --- a/packages/edge-bundler/node/bridge.test.ts +++ b/packages/edge-bundler/node/bridge.test.ts @@ -5,8 +5,9 @@ import { platform, env } from 'process' import { PassThrough } from 'stream' import nock from 'nock' -import semver from 'semver' -import tmp, { DirectoryResult } from 'tmp-promise' +import * as semver from 'semver' +import * as tmp from 'tmp-promise' +import { DirectoryResult } from 'tmp-promise' import { test, expect } from 'vitest' import { DenoBridge, DENO_VERSION_RANGE } from './bridge.js' diff --git a/packages/edge-bundler/node/bridge.ts b/packages/edge-bundler/node/bridge.ts index 8c3f313e18..59559aeb11 100644 --- a/packages/edge-bundler/node/bridge.ts +++ b/packages/edge-bundler/node/bridge.ts @@ -4,7 +4,7 @@ import process from 'process' import { execa, type ExecaChildProcess, type Options } from 'execa' import pathKey from 'path-key' -import semver from 'semver' +import * as semver from 'semver' import { download } from './downloader.js' import { FeatureFlags } from './feature_flags.js' diff --git a/packages/edge-bundler/node/bundler.test.ts b/packages/edge-bundler/node/bundler.test.ts index c32c846c18..b9d73c75a1 100644 --- a/packages/edge-bundler/node/bundler.test.ts +++ b/packages/edge-bundler/node/bundler.test.ts @@ -6,7 +6,7 @@ import { pathToFileURL } from 'url' import { lt } from 'semver' import * as tar from 'tar' -import tmp from 'tmp-promise' +import * as tmp from 'tmp-promise' import { test, expect, vi, describe } from 'vitest' import { importMapSpecifier } from '../shared/consts.js' diff --git a/packages/edge-bundler/node/bundler.ts b/packages/edge-bundler/node/bundler.ts index e65f47a36c..b553ede3da 100644 --- a/packages/edge-bundler/node/bundler.ts +++ b/packages/edge-bundler/node/bundler.ts @@ -237,7 +237,8 @@ export const bundle = async ( if (tarballDryRunError instanceof Error) { tarballLogMsg = `Dry run: Eszip successful, tarball bundle generation failed: ${tarballDryRunError.message}` } else { - tarballLogMsg = `Dry run: Eszip successful, tarball bundle generation failed: ${String(tarballDryRunError as unknown)}` + // eslint-disable-next-line @typescript-eslint/no-base-to-string + tarballLogMsg = `Dry run: Eszip successful, tarball bundle generation failed: ${String(tarballDryRunError)}` } } else { tarballLogMsg = 'Dry run: Eszip and tarball bundle generated successfully.' diff --git a/packages/edge-bundler/node/config.test.ts b/packages/edge-bundler/node/config.test.ts index fcd14736c0..1822966bf5 100644 --- a/packages/edge-bundler/node/config.test.ts +++ b/packages/edge-bundler/node/config.test.ts @@ -3,7 +3,7 @@ import { rm } from 'fs/promises' import { join, resolve } from 'path' import { pathToFileURL } from 'url' -import tmp from 'tmp-promise' +import * as tmp from 'tmp-promise' import { test, expect, vi, describe } from 'vitest' import { fixturesDir, useFixture } from '../test/util.js' diff --git a/packages/edge-bundler/node/config.ts b/packages/edge-bundler/node/config.ts index b7a17620ef..170d98fd1e 100644 --- a/packages/edge-bundler/node/config.ts +++ b/packages/edge-bundler/node/config.ts @@ -3,7 +3,7 @@ import { join } from 'path' import { pathToFileURL } from 'url' import { SemVer } from 'semver' -import tmp from 'tmp-promise' +import * as tmp from 'tmp-promise' import { DenoBridge } from './bridge.js' import { BundleError } from './bundle_error.js' diff --git a/packages/edge-bundler/node/deploy_config.test.ts b/packages/edge-bundler/node/deploy_config.test.ts index 8de0206372..0d0b0ded20 100644 --- a/packages/edge-bundler/node/deploy_config.test.ts +++ b/packages/edge-bundler/node/deploy_config.test.ts @@ -2,7 +2,7 @@ import { promises as fs } from 'fs' import { join } from 'path' import { cwd } from 'process' -import tmp from 'tmp-promise' +import * as tmp from 'tmp-promise' import { test, expect } from 'vitest' import { load } from './deploy_config.js' diff --git a/packages/edge-bundler/node/downloader.test.ts b/packages/edge-bundler/node/downloader.test.ts index c5ed4b8e49..c42329762a 100644 --- a/packages/edge-bundler/node/downloader.test.ts +++ b/packages/edge-bundler/node/downloader.test.ts @@ -4,7 +4,7 @@ import { PassThrough } from 'stream' import { execa } from 'execa' import nock from 'nock' -import tmp from 'tmp-promise' +import * as tmp from 'tmp-promise' import { beforeEach, afterEach, test, expect, type TestContext as VitestTestContext, vi } from 'vitest' import { fixturesDir, testLogger } from '../test/util.js' @@ -48,6 +48,7 @@ afterEach(async (ctx: TestContext) => { }) test('tries downloading binary up to 4 times', async (ctx: TestContext) => { + // eslint-disable-next-line import-x/no-named-as-default-member nock.disableNetConnect() const version = '99.99.99' @@ -90,6 +91,7 @@ test('tries downloading binary up to 4 times', async (ctx: TestContext) => { test('fails downloading binary after 4th time', async (ctx: TestContext) => { expect.assertions(2) + // eslint-disable-next-line import-x/no-named-as-default-member nock.disableNetConnect() const version = '99.99.99' @@ -128,6 +130,7 @@ test('fails downloading binary after 4th time', async (ctx: TestContext) => { test('fails downloading if response stream throws error', async (ctx: TestContext) => { expect.assertions(2) + // eslint-disable-next-line import-x/no-named-as-default-member nock.disableNetConnect() const version = '99.99.99' diff --git a/packages/edge-bundler/node/downloader.ts b/packages/edge-bundler/node/downloader.ts index e891022e20..3d0ec3fb3d 100644 --- a/packages/edge-bundler/node/downloader.ts +++ b/packages/edge-bundler/node/downloader.ts @@ -5,7 +5,7 @@ import { promisify } from 'util' import StreamZip from 'node-stream-zip' import pRetry from 'p-retry' -import semver from 'semver' +import * as semver from 'semver' import { Logger } from './logger.js' import { getBinaryExtension, getPlatformTarget } from './platform.js' diff --git a/packages/edge-bundler/node/formats/tarball.ts b/packages/edge-bundler/node/formats/tarball.ts index e7b46ea6f3..84b8d1ba74 100644 --- a/packages/edge-bundler/node/formats/tarball.ts +++ b/packages/edge-bundler/node/formats/tarball.ts @@ -4,7 +4,7 @@ import { fileURLToPath, pathToFileURL } from 'url' import commonPathPrefix from 'common-path-prefix' import * as tar from 'tar' -import tmp from 'tmp-promise' +import * as tmp from 'tmp-promise' import { DenoBridge } from '../bridge.js' import { Bundle, BundleFormat } from '../bundle.js' @@ -56,7 +56,6 @@ export const bundle = async ({ vendorDirectory, }: BundleTarballOptions): Promise<(arg: FinalizeTarballBundleOptions) => Promise> => { const bundleDir = await tmp.dir({ unsafeCleanup: true }) - const cleanup = [bundleDir.cleanup] const initialManifest: Omit = { functions: {}, @@ -213,7 +212,7 @@ export const bundle = async ({ const hash = await getFileHash(tarballPath) - await Promise.allSettled(cleanup) + await bundleDir.cleanup() return { extension: TARBALL_EXTENSION, diff --git a/packages/edge-bundler/node/import_map.test.ts b/packages/edge-bundler/node/import_map.test.ts index fc53441208..c3b131b97c 100644 --- a/packages/edge-bundler/node/import_map.test.ts +++ b/packages/edge-bundler/node/import_map.test.ts @@ -3,7 +3,7 @@ import { join } from 'path' import { cwd } from 'process' import { pathToFileURL } from 'url' -import tmp from 'tmp-promise' +import * as tmp from 'tmp-promise' import { describe, test, expect } from 'vitest' import { ImportMap } from './import_map.js' diff --git a/packages/edge-bundler/node/main.test.ts b/packages/edge-bundler/node/main.test.ts index b530bc6b1f..71a9fce2f1 100644 --- a/packages/edge-bundler/node/main.test.ts +++ b/packages/edge-bundler/node/main.test.ts @@ -5,8 +5,8 @@ import { platform } from 'process' import { PassThrough } from 'stream' import nock from 'nock' -import semver from 'semver' -import tmp from 'tmp-promise' +import * as semver from 'semver' +import * as tmp from 'tmp-promise' import { test, expect, vi } from 'vitest' import { DenoBridge, DENO_VERSION_RANGE } from './bridge.js' diff --git a/packages/edge-bundler/node/npm_dependencies.ts b/packages/edge-bundler/node/npm_dependencies.ts index 4c72a927f0..5084bf00fe 100644 --- a/packages/edge-bundler/node/npm_dependencies.ts +++ b/packages/edge-bundler/node/npm_dependencies.ts @@ -7,7 +7,7 @@ import { resolve, ParsedImportMap } from '@import-maps/resolve' import { build } from 'esbuild' import { findUp } from 'find-up' import { parseImports } from 'parse-imports' -import tmp from 'tmp-promise' +import * as tmp from 'tmp-promise' import { ImportMap } from './import_map.js' import { Logger } from './logger.js' diff --git a/packages/edge-bundler/node/package_json.test.ts b/packages/edge-bundler/node/package_json.test.ts index 4f7c6cecf4..3fc8d7caf4 100644 --- a/packages/edge-bundler/node/package_json.test.ts +++ b/packages/edge-bundler/node/package_json.test.ts @@ -1,4 +1,4 @@ -import semver from 'semver' +import * as semver from 'semver' import { test, expect } from 'vitest' import { getPackageVersion } from './package_json.js' diff --git a/packages/edge-bundler/node/server/server.test.ts b/packages/edge-bundler/node/server/server.test.ts index 525339df63..4dafd4f2bc 100644 --- a/packages/edge-bundler/node/server/server.test.ts +++ b/packages/edge-bundler/node/server/server.test.ts @@ -9,7 +9,7 @@ import process from 'process' // should have a proper fix for this. import { getURL as getBootstrapURL } from '@netlify/edge-functions-bootstrap/version' import getPort from 'get-port' -import tmp from 'tmp-promise' +import * as tmp from 'tmp-promise' import { v4 as uuidv4 } from 'uuid' import { test, expect } from 'vitest' diff --git a/packages/edge-bundler/node/stage_2.test.ts b/packages/edge-bundler/node/stage_2.test.ts index b455d78a78..06ba5fd768 100644 --- a/packages/edge-bundler/node/stage_2.test.ts +++ b/packages/edge-bundler/node/stage_2.test.ts @@ -3,7 +3,7 @@ import { join } from 'path' import { pathToFileURL } from 'url' import { execa } from 'execa' -import tmp from 'tmp-promise' +import * as tmp from 'tmp-promise' import { test, expect } from 'vitest' import { getLocalEntryPoint } from './formats/javascript.js' diff --git a/packages/edge-bundler/node/types.test.ts b/packages/edge-bundler/node/types.test.ts index 4d57416dac..ca35983b8f 100644 --- a/packages/edge-bundler/node/types.test.ts +++ b/packages/edge-bundler/node/types.test.ts @@ -2,7 +2,7 @@ import { readFile, rm, writeFile } from 'fs/promises' import { join } from 'path' import nock from 'nock' -import tmp from 'tmp-promise' +import * as tmp from 'tmp-promise' import { test, expect, vi } from 'vitest' import { testLogger } from '../test/util.js' diff --git a/packages/edge-bundler/node/validation/manifest/index.ts b/packages/edge-bundler/node/validation/manifest/index.ts index 7c69bd4809..a1257e9962 100644 --- a/packages/edge-bundler/node/validation/manifest/index.ts +++ b/packages/edge-bundler/node/validation/manifest/index.ts @@ -1,3 +1,4 @@ +// eslint-disable-next-line import-x/no-named-as-default import Ajv from 'ajv' import type { ValidateFunction } from 'ajv/dist/core.js' import ajvErrors from 'ajv-errors' diff --git a/packages/edge-bundler/test/integration/test.js b/packages/edge-bundler/test/integration/test.js index af7a66874e..2469c32ea8 100644 --- a/packages/edge-bundler/test/integration/test.js +++ b/packages/edge-bundler/test/integration/test.js @@ -9,7 +9,7 @@ import { promisify } from 'util' import cpy from 'cpy' import { x as tarExtract } from 'tar' -import tmp from 'tmp-promise' +import * as tmp from 'tmp-promise' const exec = promisify(childProcess.exec) const require = createRequire(import.meta.url) diff --git a/packages/edge-bundler/test/util.ts b/packages/edge-bundler/test/util.ts index a2573a5e42..9a47232049 100644 --- a/packages/edge-bundler/test/util.ts +++ b/packages/edge-bundler/test/util.ts @@ -7,7 +7,7 @@ import { fileURLToPath, pathToFileURL } from 'node:url' import cpy from 'cpy' import { execa } from 'execa' import * as tar from 'tar' -import tmp from 'tmp-promise' +import * as tmp from 'tmp-promise' import { getLogger } from '../node/logger.js' import type { Manifest } from '../node/manifest.js' @@ -37,7 +37,7 @@ export const useFixture = async (fixtureName: string, { copyDirectory }: UseFixt return { basePath: tmpFixtureDir.path, - cleanup: () => Promise.allSettled([tmpDistDir.cleanup, tmpFixtureDir.cleanup]), + cleanup: () => Promise.allSettled([tmpDistDir.cleanup(), tmpFixtureDir.cleanup()]), distPath, } } @@ -60,7 +60,7 @@ const inspectESZIPFunction = (path: string) => ` responses[functionName] = await res.text(); } - + console.log(JSON.stringify(responses)); ` diff --git a/packages/functions-utils/src/main.ts b/packages/functions-utils/src/main.ts index 7ce0eb52bd..7624e2270b 100644 --- a/packages/functions-utils/src/main.ts +++ b/packages/functions-utils/src/main.ts @@ -35,7 +35,7 @@ const getSrcAndDest = async function (src: string, srcBasename: string, dist: st return [srcBasename, dist] } -export const list = async function (functionsSrc, { fail = defaultFail } = {} as any) { +export const list = async function (functionsSrc, { fail = defaultFail } = {}) { if (functionsSrc === undefined || functionsSrc.length === 0) { return fail('No function directory was specified') } @@ -47,7 +47,7 @@ export const list = async function (functionsSrc, { fail = defaultFail } = {} as } } -export const listAll = async function (functionsSrc, { fail = defaultFail } = {} as any) { +export const listAll = async function (functionsSrc, { fail = defaultFail } = {}) { if (functionsSrc === undefined || functionsSrc.length === 0) { return fail('No function directory was specified') } diff --git a/packages/js-client/package.json b/packages/js-client/package.json index d501374207..9e2953dd68 100644 --- a/packages/js-client/package.json +++ b/packages/js-client/package.json @@ -3,7 +3,10 @@ "description": "Netlify Node.js API client", "version": "14.0.18", "type": "module", - "exports": "./lib/index.js", + "exports": { + ".": "./lib/index.js", + "./lib/types.js": "./lib/types.js" + }, "main": "./lib/index.js", "types": "./lib/index.d.ts", "files": [ diff --git a/packages/opentelemetry-sdk-setup/src/bin.ts b/packages/opentelemetry-sdk-setup/src/bin.ts index f24ff58b15..249a4b9e25 100644 --- a/packages/opentelemetry-sdk-setup/src/bin.ts +++ b/packages/opentelemetry-sdk-setup/src/bin.ts @@ -35,7 +35,7 @@ const args = argsParser(process.argv) as unknown as { // Apply the defaults making sure we're not tripped by falsy values const options = Object.entries(defaultOptions) .map(([key, defaultValue]) => { - if (args.tracing !== undefined && args.tracing[key] !== undefined) { + if (args.tracing?.[key] !== undefined) { return { [key]: args.tracing[key] } } return { [key]: defaultValue } diff --git a/packages/redirect-parser/src/all.ts b/packages/redirect-parser/src/all.ts index a3ffffa176..e583afaeb2 100644 --- a/packages/redirect-parser/src/all.ts +++ b/packages/redirect-parser/src/all.ts @@ -9,10 +9,10 @@ import { splitResults, concatResults } from './results.js' * files, then normalize and validate those. */ export const parseAllRedirects = async function ({ - redirectsFiles = [], + redirectsFiles, netlifyConfigPath, - configRedirects = [], - minimal = false, + configRedirects, + minimal, }: { redirectsFiles: string[] netlifyConfigPath?: string diff --git a/packages/run-utils/tests/main.test.ts b/packages/run-utils/tests/main.test.ts index 7530758f79..595d5aade6 100644 --- a/packages/run-utils/tests/main.test.ts +++ b/packages/run-utils/tests/main.test.ts @@ -2,7 +2,7 @@ import { platform } from 'process' import { fileURLToPath } from 'url' import { execaNode } from 'execa' -import semver from 'semver' +import * as semver from 'semver' import { test, expect } from 'vitest' import { run, runCommand } from '../src/main.js' diff --git a/packages/testing/src/server.ts b/packages/testing/src/server.ts index ef915a7fe3..d6418ad07d 100644 --- a/packages/testing/src/server.ts +++ b/packages/testing/src/server.ts @@ -56,7 +56,7 @@ const requestHandler = async (req: IncomingMessage, res: ServerResponse, request await setTimeoutPromise(wait) } - const requestBody = await getRequestBody(req as any) + const requestBody = await getRequestBody(req) const headersA = Object.keys(req.headers).sort().join(' ') if (req.url && req.method) { diff --git a/packages/testing/src/tcp_server.ts b/packages/testing/src/tcp_server.ts index 8816bcdefa..a33c2255db 100644 --- a/packages/testing/src/tcp_server.ts +++ b/packages/testing/src/tcp_server.ts @@ -5,7 +5,7 @@ import getPort from 'get-port' import { tmpName } from 'tmp-promise' // Start a TCP server to mock calls. -export const startTcpServer = async function ({ response = '', useUnixSocket = true, onRequest = undefined } = {}) { +export const startTcpServer = async function ({ response = '', useUnixSocket = true, onRequest } = {}) { const requests = [] const { connectionOpts, address } = await getConnectionOpts({ useUnixSocket }) const server = createServer(onConnection.bind(null, { response, requests, onRequest })) diff --git a/packages/zip-it-and-ship-it/src/deps.d.ts b/packages/zip-it-and-ship-it/src/deps.d.ts index a85988e126..85214b630f 100644 --- a/packages/zip-it-and-ship-it/src/deps.d.ts +++ b/packages/zip-it-and-ship-it/src/deps.d.ts @@ -2,10 +2,6 @@ declare module 'require-package-name' { export default function requirePackageName(requireStatement: string): string } -declare module 'precinct' { - export function paperwork(path: string, { includeCore: boolean }): Promise -} - declare module 'read-package-json-fast' { export default function readPackageJsonFast( path: string, diff --git a/packages/zip-it-and-ship-it/src/runtimes/index.ts b/packages/zip-it-and-ship-it/src/runtimes/index.ts index c314d548eb..efe2604c00 100644 --- a/packages/zip-it-and-ship-it/src/runtimes/index.ts +++ b/packages/zip-it-and-ship-it/src/runtimes/index.ts @@ -30,7 +30,7 @@ type FunctionTupleWithoutConfig = [string, FunctionWithoutConfig] */ const findFunctionsInRuntime = async function ({ cache, - dedupe = false, + dedupe, featureFlags, paths, runtime, diff --git a/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/bundler.ts b/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/bundler.ts index 589bf50633..69243a93f8 100644 --- a/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/bundler.ts +++ b/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/bundler.ts @@ -78,9 +78,9 @@ const includedFilesToEsbuildExternals = async (includedFiles: string[], baseDir: export const bundleJsFile = async function ({ additionalModulePaths, config, - externalModules = [], + externalModules, featureFlags, - ignoredModules = [], + ignoredModules, mainFile, name, srcDir, @@ -139,7 +139,7 @@ export const bundleJsFile = async function ({ const outputExtension = getFileExtensionForFormat(moduleFormat, featureFlags, runtimeAPIVersion) try { - const { metafile = { inputs: {}, outputs: {} }, warnings } = await build({ + const { metafile, warnings } = await build({ banner: moduleFormat === MODULE_FORMAT.ESM ? { js: CJS_SHIM } : undefined, bundle: true, entryPoints: [srcFile], diff --git a/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/index.ts b/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/index.ts index 5acbb40a22..79fb487eef 100644 --- a/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/index.ts +++ b/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/index.ts @@ -50,7 +50,7 @@ const getExternalAndIgnoredModules = async ({ config, srcDir }: { config: Functi const bundle: BundleFunction = async ({ basePath, - config = {}, + config, extension, featureFlags, filename, @@ -71,7 +71,7 @@ const bundle: BundleFunction = async ({ cleanTempFiles, inputs, moduleFormat, - nativeNodeModules = {}, + nativeNodeModules, outputExtension, warnings, } = await bundleJsFile({ diff --git a/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/plugin_native_modules.ts b/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/plugin_native_modules.ts index ec2149a5fe..880919cf06 100644 --- a/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/plugin_native_modules.ts +++ b/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/plugin_native_modules.ts @@ -18,7 +18,7 @@ const packageName = /^([^@][^/]*|@[^/]*\/[^/]+)(?:\/|$)/ const findNativeModule = (packageJsonPath: string, cache: NativeModuleCache) => { if (cache[packageJsonPath] === undefined) { cache[packageJsonPath] = readPackageJson(packageJsonPath).then( - (data) => [Boolean(isNativeModule(data)), data], + (data) => [isNativeModule(data), data], () => [undefined, {}], ) } diff --git a/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/src_files.ts b/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/src_files.ts index e5029ea576..2d4e28cc37 100644 --- a/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/src_files.ts +++ b/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/src_files.ts @@ -63,7 +63,7 @@ const getSrcFilesForDependencies = async function ({ const getSrcFilesForDependency = async function ({ dependency, basedir, - state = getNewCache(), + state, packageJson, pluginsModulesPath, nodeVersion, diff --git a/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/zisi/list_imports.ts b/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/zisi/list_imports.ts index b0f97377b9..efe942cf17 100644 --- a/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/zisi/list_imports.ts +++ b/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/zisi/list_imports.ts @@ -73,9 +73,10 @@ const listImportsWithESBuild = async ({ return [...imports] } -const listImportsWithPrecinct = async ({ functionName, path }: { functionName: string; path: string }) => { +const listImportsWithPrecinct = ({ functionName, path }: { functionName: string; path: string }) => { try { - return await precinct.paperwork(path, { includeCore: false }) + // eslint-disable-next-line import-x/no-named-as-default-member + return precinct.paperwork(path, { includeCore: false }) } catch (error) { // Syntax errors from babel are user errors if (error.code === 'BABEL_PARSER_SYNTAX_ERROR') { @@ -97,4 +98,4 @@ export const listImports = async ({ featureFlags: FeatureFlags functionName: string path: string -}) => (featureFlags.parseWithEsbuild ? await listImportsWithESBuild(args) : await listImportsWithPrecinct(args)) +}) => (featureFlags.parseWithEsbuild ? await listImportsWithESBuild(args) : listImportsWithPrecinct(args)) diff --git a/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/zisi/nested.ts b/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/zisi/nested.ts index 71c929922c..1bccce162b 100644 --- a/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/zisi/nested.ts +++ b/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/zisi/nested.ts @@ -1,4 +1,4 @@ -import semver from 'semver' +import * as semver from 'semver' import { PackageJson } from '../../utils/package_json.js' diff --git a/packages/zip-it-and-ship-it/src/runtimes/node/in_source_config/properties/schedule.ts b/packages/zip-it-and-ship-it/src/runtimes/node/in_source_config/properties/schedule.ts index d60fc220b6..4bb4b10296 100644 --- a/packages/zip-it-and-ship-it/src/runtimes/node/in_source_config/properties/schedule.ts +++ b/packages/zip-it-and-ship-it/src/runtimes/node/in_source_config/properties/schedule.ts @@ -1,4 +1,4 @@ -import babelTypes from '@babel/types' +import * as babelTypes from '@babel/types' import type { BindingMethod } from '../../parser/bindings.js' import type { ISCHandlerArg } from '../index.js' diff --git a/packages/zip-it-and-ship-it/src/runtimes/node/index.ts b/packages/zip-it-and-ship-it/src/runtimes/node/index.ts index 17e2f8b221..dd96b489a6 100644 --- a/packages/zip-it-and-ship-it/src/runtimes/node/index.ts +++ b/packages/zip-it-and-ship-it/src/runtimes/node/index.ts @@ -39,7 +39,7 @@ const zipFunction: ZipFunction = async function ({ basePath, branch, cache, - config = {}, + config, destFolder, extension, featureFlags, @@ -94,7 +94,7 @@ const zipFunction: ZipFunction = async function ({ bundlerWarnings, includedFiles, inputs, - mainFile: finalMainFile = mainFile, + mainFile: finalMainFile, moduleFormat, nativeNodeModules, rewrites = new Map(), @@ -193,7 +193,7 @@ const zipFunction: ZipFunction = async function ({ } } -const zipWithFunctionWithFallback: ZipFunction = async ({ config = {}, ...parameters }) => { +const zipWithFunctionWithFallback: ZipFunction = async ({ config, ...parameters }) => { // If a specific JS bundler version is specified, we'll use it. if (config.nodeBundler !== NODE_BUNDLER.ESBUILD_ZISI) { return zipFunction({ ...parameters, config }) diff --git a/packages/zip-it-and-ship-it/src/runtimes/node/parser/exports.ts b/packages/zip-it-and-ship-it/src/runtimes/node/parser/exports.ts index 928520dd75..53e3e1bf97 100644 --- a/packages/zip-it-and-ship-it/src/runtimes/node/parser/exports.ts +++ b/packages/zip-it-and-ship-it/src/runtimes/node/parser/exports.ts @@ -75,7 +75,7 @@ export const traverseNodes = (nodes: Statement[], getAllBindings: BindingMethod) if (node.type === 'ExportDefaultDeclaration') { hasDefaultExport = true - defaultExportExpression = node.declaration as Expression + defaultExportExpression = node.declaration return } @@ -284,10 +284,10 @@ const getExportsFromBindings = ( const specifier = specifiers.find((node) => isNamedExport(node, name)) // If there's no named export with the given name, check if there's a default - if (!specifier || specifier.type !== 'ExportSpecifier') { + if (specifier?.type !== 'ExportSpecifier') { const defaultExport = specifiers.find((node) => isDefaultExport(node)) - if (defaultExport && defaultExport.type === 'ExportSpecifier') { + if (defaultExport?.type === 'ExportSpecifier') { const binding = getAllBindings().get(defaultExport.local.name) if ( @@ -329,7 +329,7 @@ const getESMReexportedDefaultExpression = ( spec.type === 'ExportSpecifier' && spec.exported.type === 'Identifier' && spec.exported.name === 'default', ) - if (defaultSpecifier && defaultSpecifier.type === 'ExportSpecifier') { + if (defaultSpecifier?.type === 'ExportSpecifier') { return getAllBindings().get(defaultSpecifier.local.name) } diff --git a/packages/zip-it-and-ship-it/src/runtimes/node/parser/helpers.ts b/packages/zip-it-and-ship-it/src/runtimes/node/parser/helpers.ts index 2825d68d98..a55bf76996 100644 --- a/packages/zip-it-and-ship-it/src/runtimes/node/parser/helpers.ts +++ b/packages/zip-it-and-ship-it/src/runtimes/node/parser/helpers.ts @@ -46,7 +46,7 @@ export const isModuleExports = ( isDotExpression(node.expression.left, dotExpression) export const isRequire = (node: Expression | undefined | null, requirePath: string) => { - if (!node || node.type !== 'CallExpression') { + if (node?.type !== 'CallExpression') { return false } diff --git a/packages/zip-it-and-ship-it/src/runtimes/node/parser/imports.ts b/packages/zip-it-and-ship-it/src/runtimes/node/parser/imports.ts index 213cad4963..7d0c917bd4 100644 --- a/packages/zip-it-and-ship-it/src/runtimes/node/parser/imports.ts +++ b/packages/zip-it-and-ship-it/src/runtimes/node/parser/imports.ts @@ -28,7 +28,7 @@ const getImportsFromCJS = (node: Statement, importPath: string) => { (declaration) => declaration.type === 'VariableDeclarator' && isRequire(declaration.init, importPath), ) - if (requireDeclaration === undefined || requireDeclaration.id.type !== 'ObjectPattern') { + if (requireDeclaration?.id.type !== 'ObjectPattern') { return [] } diff --git a/packages/zip-it-and-ship-it/src/runtimes/node/parser/index.ts b/packages/zip-it-and-ship-it/src/runtimes/node/parser/index.ts index 90bddc8032..97ce15e675 100644 --- a/packages/zip-it-and-ship-it/src/runtimes/node/parser/index.ts +++ b/packages/zip-it-and-ship-it/src/runtimes/node/parser/index.ts @@ -162,7 +162,7 @@ const parseRequire = ({ expression: CallExpression resolveDir: string }) => { - const { arguments: args = [] } = expression + const { arguments: args } = expression const [firstArg] = args if (firstArg === undefined) { diff --git a/packages/zip-it-and-ship-it/src/runtimes/node/utils/included_files.ts b/packages/zip-it-and-ship-it/src/runtimes/node/utils/included_files.ts index 2fe32ba394..ccc286af09 100644 --- a/packages/zip-it-and-ship-it/src/runtimes/node/utils/included_files.ts +++ b/packages/zip-it-and-ship-it/src/runtimes/node/utils/included_files.ts @@ -1,5 +1,6 @@ import { normalize, resolve } from 'path' +// eslint-disable-next-line import-x/no-named-as-default import glob from 'fast-glob' import { minimatch } from '../../../utils/matching.js' diff --git a/packages/zip-it-and-ship-it/src/runtimes/node/utils/node_version.ts b/packages/zip-it-and-ship-it/src/runtimes/node/utils/node_version.ts index a3dd91abbd..433a5303a4 100644 --- a/packages/zip-it-and-ship-it/src/runtimes/node/utils/node_version.ts +++ b/packages/zip-it-and-ship-it/src/runtimes/node/utils/node_version.ts @@ -1,4 +1,4 @@ -import semver from 'semver' +import * as semver from 'semver' export interface NodeVersionSupport { esm: boolean diff --git a/packages/zip-it-and-ship-it/src/runtimes/rust/builder.ts b/packages/zip-it-and-ship-it/src/runtimes/rust/builder.ts index bf707b4f90..ed5fd5ae70 100644 --- a/packages/zip-it-and-ship-it/src/runtimes/rust/builder.ts +++ b/packages/zip-it-and-ship-it/src/runtimes/rust/builder.ts @@ -1,7 +1,7 @@ import { mkdir } from 'fs/promises' import { basename, join } from 'path' -import tmp from 'tmp-promise' +import * as tmp from 'tmp-promise' import toml from 'toml' import type { FunctionConfig } from '../../config.js' diff --git a/packages/zip-it-and-ship-it/tests/main.test.ts b/packages/zip-it-and-ship-it/tests/main.test.ts index 283b51f154..145c069bb2 100644 --- a/packages/zip-it-and-ship-it/tests/main.test.ts +++ b/packages/zip-it-and-ship-it/tests/main.test.ts @@ -6,10 +6,11 @@ import cpy from 'cpy' import decompress from 'decompress' import merge from 'deepmerge' import { execa, execaNode } from 'execa' +// eslint-disable-next-line import-x/no-named-as-default import glob from 'fast-glob' import isCI from 'is-ci' import { pathExists } from 'path-exists' -import semver from 'semver' +import * as semver from 'semver' import { dir as getTmpDir, tmpName } from 'tmp-promise' import unixify from 'unixify' import { afterAll, afterEach, beforeAll, describe, expect, test, vi } from 'vitest' @@ -1948,7 +1949,7 @@ describe('zip-it-and-ship-it', () => { const tmpDirectory = await tmpName({ prefix: `zip-it-test` }) vi.mocked(shellUtils.runCommand).mockImplementation(async (...args) => { - const [rootCommand, , { cwd = undefined, env: environment = undefined } = {}] = args + const [rootCommand, , { cwd, env: environment } = {}] = args if (rootCommand === 'cargo') { const directory = join(environment.CARGO_TARGET_DIR, args[1][2], 'release') diff --git a/packages/zip-it-and-ship-it/tests/telemetry.test.ts b/packages/zip-it-and-ship-it/tests/telemetry.test.ts index cc5730d9ae..95156c46ce 100644 --- a/packages/zip-it-and-ship-it/tests/telemetry.test.ts +++ b/packages/zip-it-and-ship-it/tests/telemetry.test.ts @@ -1,6 +1,7 @@ import { join } from 'path' import decompress from 'decompress' +// eslint-disable-next-line import-x/no-named-as-default import glob from 'fast-glob' import { dir as getTmpDir } from 'tmp-promise' import { expect, test } from 'vitest' diff --git a/packages/zip-it-and-ship-it/tests/v2api.test.ts b/packages/zip-it-and-ship-it/tests/v2api.test.ts index 1c15df6b90..7a5ef10bc0 100644 --- a/packages/zip-it-and-ship-it/tests/v2api.test.ts +++ b/packages/zip-it-and-ship-it/tests/v2api.test.ts @@ -4,6 +4,7 @@ import { platform } from 'process' import { getPath as getBootstrapPath } from '@netlify/serverless-functions-api' import merge from 'deepmerge' +// eslint-disable-next-line import-x/no-named-as-default import glob from 'fast-glob' import { pathExists } from 'path-exists' import { dir as getTmpDir } from 'tmp-promise' From 3297ebe2f9bdb67ad9ca46bc719ce5dc4a43047e Mon Sep 17 00:00:00 2001 From: James Garbutt <43081j@users.noreply.github.com> Date: Tue, 5 May 2026 11:47:00 +0100 Subject: [PATCH 2/6] chore: revert to allSettled --- packages/edge-bundler/node/formats/tarball.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/edge-bundler/node/formats/tarball.ts b/packages/edge-bundler/node/formats/tarball.ts index 84b8d1ba74..c4e0d6961e 100644 --- a/packages/edge-bundler/node/formats/tarball.ts +++ b/packages/edge-bundler/node/formats/tarball.ts @@ -212,7 +212,7 @@ export const bundle = async ({ const hash = await getFileHash(tarballPath) - await bundleDir.cleanup() + await Promise.allSettled([bundleDir.cleanup()]) return { extension: TARBALL_EXTENSION, From 0ecc0881331ca92e551eaa751d6294fe3cecbdab Mon Sep 17 00:00:00 2001 From: James Garbutt <43081j@users.noreply.github.com> Date: Tue, 5 May 2026 12:02:00 +0100 Subject: [PATCH 3/6] chore: add explicit types --- packages/config/src/env/main.ts | 10 ++++++++++ packages/functions-utils/src/main.ts | 10 +++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/packages/config/src/env/main.ts b/packages/config/src/env/main.ts index c5db8051a9..387d8e9030 100644 --- a/packages/config/src/env/main.ts +++ b/packages/config/src/env/main.ts @@ -154,6 +154,16 @@ const getDeployUrls = function ({ siteInfo: { name = DEFAULT_SITE_NAME, ssl_url: sslUrl, build_settings: { repo_url: REPOSITORY_URL } = {} }, branch, deployId, +}: { + siteInfo: { + name?: string + ssl_url: string + build_settings?: { + repo_url?: string + } + } + branch: string + deployId: string }) { return { URL: sslUrl, diff --git a/packages/functions-utils/src/main.ts b/packages/functions-utils/src/main.ts index 7624e2270b..804abd07a4 100644 --- a/packages/functions-utils/src/main.ts +++ b/packages/functions-utils/src/main.ts @@ -5,9 +5,13 @@ import { listFunctions, listFunctionsFiles } from '@netlify/zip-it-and-ship-it' import cpy from 'cpy' import { pathExists } from 'path-exists' +interface Options { + fail?: (message: string, opts?: { error: Error }) => void +} + // Add a Netlify Function file to the `functions` directory, so it is processed // by `@netlify/plugin-functions-core` -export const add = async function (src?: string, dist?: string, { fail = defaultFail } = {}): Promise { +export const add = async function (src?: string, dist?: string, { fail = defaultFail }: Options = {}): Promise { if (src === undefined) { return fail('No function source directory was specified') } @@ -35,7 +39,7 @@ const getSrcAndDest = async function (src: string, srcBasename: string, dist: st return [srcBasename, dist] } -export const list = async function (functionsSrc, { fail = defaultFail } = {}) { +export const list = async function (functionsSrc, { fail = defaultFail }: Options = {}) { if (functionsSrc === undefined || functionsSrc.length === 0) { return fail('No function directory was specified') } @@ -47,7 +51,7 @@ export const list = async function (functionsSrc, { fail = defaultFail } = {}) { } } -export const listAll = async function (functionsSrc, { fail = defaultFail } = {}) { +export const listAll = async function (functionsSrc, { fail = defaultFail }: Options = {}) { if (functionsSrc === undefined || functionsSrc.length === 0) { return fail('No function directory was specified') } From ad4be0796b0a522fa8fd33e5eee7d22d8c7b3fcc Mon Sep 17 00:00:00 2001 From: James Garbutt <43081j@users.noreply.github.com> Date: Tue, 5 May 2026 12:14:16 +0100 Subject: [PATCH 4/6] chore: add type annotation for startTcpServer --- packages/testing/src/tcp_server.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/testing/src/tcp_server.ts b/packages/testing/src/tcp_server.ts index a33c2255db..d06f30667c 100644 --- a/packages/testing/src/tcp_server.ts +++ b/packages/testing/src/tcp_server.ts @@ -5,7 +5,15 @@ import getPort from 'get-port' import { tmpName } from 'tmp-promise' // Start a TCP server to mock calls. -export const startTcpServer = async function ({ response = '', useUnixSocket = true, onRequest } = {}) { +export const startTcpServer = async function ({ + response = '', + useUnixSocket = true, + onRequest, +}: { + response?: string + useUnixSocket?: boolean + onRequest?: (request: string | Record) => Promise +} = {}) { const requests = [] const { connectionOpts, address } = await getConnectionOpts({ useUnixSocket }) const server = createServer(onConnection.bind(null, { response, requests, onRequest })) From dad92b4c4583c3f1fd6330bd4844e03eedaa2ac0 Mon Sep 17 00:00:00 2001 From: James Garbutt <43081j@users.noreply.github.com> Date: Mon, 11 May 2026 09:41:10 +0100 Subject: [PATCH 5/6] chore: revert defaults and move to temporary suppressions --- eslint_temporary_suppressions.js | 25 +++++++++++++++++++ packages/build/src/error/parse/parse.ts | 2 +- packages/build/src/error/types.ts | 2 +- packages/build/src/plugins/child/utils.ts | 2 +- packages/build/src/plugins/compatibility.ts | 2 +- packages/build/src/plugins/list.ts | 2 +- .../src/plugins_core/frameworks_api/index.ts | 9 ++++++- .../build/src/plugins_core/functions/zisi.ts | 2 +- packages/build/src/time/main.ts | 7 +++++- packages/config/src/case.ts | 2 +- packages/config/src/env/main.ts | 16 ++++-------- packages/functions-utils/src/main.ts | 10 +++----- packages/redirect-parser/src/all.ts | 6 ++--- .../runtimes/node/bundlers/esbuild/bundler.ts | 6 ++--- .../runtimes/node/bundlers/esbuild/index.ts | 4 +-- .../node/bundlers/esbuild/src_files.ts | 2 +- .../src/runtimes/node/index.ts | 6 ++--- .../src/runtimes/node/parser/index.ts | 2 +- .../zip-it-and-ship-it/tests/main.test.ts | 2 +- 19 files changed, 68 insertions(+), 41 deletions(-) diff --git a/eslint_temporary_suppressions.js b/eslint_temporary_suppressions.js index 2ed0c0edec..4ba00b3e9c 100644 --- a/eslint_temporary_suppressions.js +++ b/eslint_temporary_suppressions.js @@ -2846,4 +2846,29 @@ export default [ 'import/no-named-as-default-member': 'off', }, }, + { + files: [ + 'packages/build/src/error/parse/parse.ts', + 'packages/build/src/error/types.ts', + 'packages/build/src/plugins/child/utils.ts', + 'packages/build/src/plugins/compatibility.ts', + 'packages/build/src/plugins/list.ts', + 'packages/build/src/plugins_core/frameworks_api/index.ts', + 'packages/build/src/plugins_core/functions/zisi.ts', + 'packages/build/src/time/main.ts', + 'packages/config/src/case.ts', + 'packages/config/src/env/main.ts', + 'packages/functions-utils/src/main.ts', + 'packages/redirect-parser/src/all.ts', + 'packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/bundler.ts', + 'packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/index.ts', + 'packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/src_files.ts', + 'packages/zip-it-and-ship-it/src/runtimes/node/index.ts', + 'packages/zip-it-and-ship-it/src/runtimes/node/parser/index.ts', + 'packages/zip-it-and-ship-it/tests/main.test.ts', + ], + rules: { + '@typescript-eslint/no-useless-default-assignment': 'off' + } + } ] diff --git a/packages/build/src/error/parse/parse.ts b/packages/build/src/error/parse/parse.ts index e3b1a34e1e..0e81160b13 100644 --- a/packages/build/src/error/parse/parse.ts +++ b/packages/build/src/error/parse/parse.ts @@ -26,7 +26,7 @@ export const getFullErrorInfo = function ({ error, colors, debug }): BuildError errorMetadata, } = basicErrorInfo - const { location, plugin = {}, tsConfig } = errorInfo + const { location = {}, plugin = {}, tsConfig } = errorInfo const titleA = getTitle(title, errorInfo) diff --git a/packages/build/src/error/types.ts b/packages/build/src/error/types.ts index 6948258ba9..633d0cc61b 100644 --- a/packages/build/src/error/types.ts +++ b/packages/build/src/error/types.ts @@ -386,7 +386,7 @@ const TYPES: { [T in ErrorTypes]: ErrorType } = { return `Bundling of function "${functionName}" failed` }, - group: ({ location: { functionType } }: { location: FunctionsBundlingLocation }) => + group: ({ location: { functionType = 'serverless' } }: { location: FunctionsBundlingLocation }) => `Bundling of ${functionType} function failed`, stackType: 'none', locationType: 'functionsBundling', diff --git a/packages/build/src/plugins/child/utils.ts b/packages/build/src/plugins/child/utils.ts index 29e1070e01..d3493cdbc7 100644 --- a/packages/build/src/plugins/child/utils.ts +++ b/packages/build/src/plugins/child/utils.ts @@ -26,7 +26,7 @@ export const getUtils = function ({ constants: { FUNCTIONS_SRC, INTERNAL_FUNCTIONS_SRC, CACHE_DIR }, generatedFunctions = [], runState, - deployEnvVars, + deployEnvVars = [], }: { event: BuildEvent constants: NetlifyPluginConstants diff --git a/packages/build/src/plugins/compatibility.ts b/packages/build/src/plugins/compatibility.ts index 61ef288227..d2d90f9017 100644 --- a/packages/build/src/plugins/compatibility.ts +++ b/packages/build/src/plugins/compatibility.ts @@ -47,7 +47,7 @@ export const getExpectedVersion = async function ({ selected */ authoritative?: boolean }) { - const { version, conditions } = await getCompatibleEntry({ + const { version, conditions = [] } = await getCompatibleEntry({ versions, nodeVersion, packageJson, diff --git a/packages/build/src/plugins/list.ts b/packages/build/src/plugins/list.ts index 82d43720f6..537ffc9de7 100644 --- a/packages/build/src/plugins/list.ts +++ b/packages/build/src/plugins/list.ts @@ -127,7 +127,7 @@ const normalizePluginsList = function (pluginsList: PluginListEntry[]) { // When `compatability` array is present it takes precedence, otherwise top-level `version` field is used as latest version // Plugin data comes from @netlify/plugins -const normalizePluginItem = function ({ package: packageName, version, compatibility }: PluginListEntry) { +const normalizePluginItem = function ({ package: packageName, version, compatibility = [] }: PluginListEntry) { const versions = compatibility.length === 0 ? [{ version }] : compatibility const versionsA = versions.map(normalizeCompatVersion) return [packageName, versionsA] as const diff --git a/packages/build/src/plugins_core/frameworks_api/index.ts b/packages/build/src/plugins_core/frameworks_api/index.ts index 3b9ecbca76..b4ae6a2f11 100644 --- a/packages/build/src/plugins_core/frameworks_api/index.ts +++ b/packages/build/src/plugins_core/frameworks_api/index.ts @@ -55,7 +55,14 @@ const handleSkewProtection = async (buildDir: string, packagePath?: string) => { } } -const coreStep: CoreStepFunction = async function ({ buildDir, netlifyConfig, packagePath, systemLog }) { +const coreStep: CoreStepFunction = async function ({ + buildDir, + netlifyConfig, + packagePath, + systemLog = () => { + // no-op + }, +}) { await handleSkewProtection(buildDir, packagePath) let config: Partial | undefined diff --git a/packages/build/src/plugins_core/functions/zisi.ts b/packages/build/src/plugins_core/functions/zisi.ts index e255c9fcd1..aa6e63c39e 100644 --- a/packages/build/src/plugins_core/functions/zisi.ts +++ b/packages/build/src/plugins_core/functions/zisi.ts @@ -83,7 +83,7 @@ export const getZisiParameters = ({ // translation here. export const normalizeFunctionConfig = ({ buildDir, - functionConfig, + functionConfig = {}, isRunningLocally, nodeVersion, }: { diff --git a/packages/build/src/time/main.ts b/packages/build/src/time/main.ts index f09e7cc6fe..5a538fbb29 100644 --- a/packages/build/src/time/main.ts +++ b/packages/build/src/time/main.ts @@ -49,7 +49,12 @@ export const measureDuration = keepFuncProps(kMeasureDuration) export const createTimer = function ( stageTag, durationNs, - { metricName = DEFAULT_METRIC_NAME, parentTag = TOP_PARENT_TAG, category, tags }: MeasureDurationOptions = {}, + { + metricName = DEFAULT_METRIC_NAME, + parentTag = TOP_PARENT_TAG, + category = undefined, + tags = undefined, + }: MeasureDurationOptions = {}, ) { return { metricName, stageTag, parentTag, durationNs, category, tags } } diff --git a/packages/config/src/case.ts b/packages/config/src/case.ts index b1c6cf1bd2..0bbdad2180 100644 --- a/packages/config/src/case.ts +++ b/packages/config/src/case.ts @@ -1,7 +1,7 @@ // Some properties can be optionally capitalized. We normalize them to lowercase export const normalizeConfigCase = function ({ Build, - build, + build = Build, ...config }: { Build: Record diff --git a/packages/config/src/env/main.ts b/packages/config/src/env/main.ts index 387d8e9030..4a8cab1608 100644 --- a/packages/config/src/env/main.ts +++ b/packages/config/src/env/main.ts @@ -151,19 +151,13 @@ const getInternalEnv = function ( } const getDeployUrls = function ({ - siteInfo: { name = DEFAULT_SITE_NAME, ssl_url: sslUrl, build_settings: { repo_url: REPOSITORY_URL } = {} }, + siteInfo: { + name = DEFAULT_SITE_NAME, + ssl_url: sslUrl, + build_settings: { repo_url: REPOSITORY_URL = undefined } = {}, + }, branch, deployId, -}: { - siteInfo: { - name?: string - ssl_url: string - build_settings?: { - repo_url?: string - } - } - branch: string - deployId: string }) { return { URL: sslUrl, diff --git a/packages/functions-utils/src/main.ts b/packages/functions-utils/src/main.ts index 804abd07a4..7624e2270b 100644 --- a/packages/functions-utils/src/main.ts +++ b/packages/functions-utils/src/main.ts @@ -5,13 +5,9 @@ import { listFunctions, listFunctionsFiles } from '@netlify/zip-it-and-ship-it' import cpy from 'cpy' import { pathExists } from 'path-exists' -interface Options { - fail?: (message: string, opts?: { error: Error }) => void -} - // Add a Netlify Function file to the `functions` directory, so it is processed // by `@netlify/plugin-functions-core` -export const add = async function (src?: string, dist?: string, { fail = defaultFail }: Options = {}): Promise { +export const add = async function (src?: string, dist?: string, { fail = defaultFail } = {}): Promise { if (src === undefined) { return fail('No function source directory was specified') } @@ -39,7 +35,7 @@ const getSrcAndDest = async function (src: string, srcBasename: string, dist: st return [srcBasename, dist] } -export const list = async function (functionsSrc, { fail = defaultFail }: Options = {}) { +export const list = async function (functionsSrc, { fail = defaultFail } = {}) { if (functionsSrc === undefined || functionsSrc.length === 0) { return fail('No function directory was specified') } @@ -51,7 +47,7 @@ export const list = async function (functionsSrc, { fail = defaultFail }: Option } } -export const listAll = async function (functionsSrc, { fail = defaultFail }: Options = {}) { +export const listAll = async function (functionsSrc, { fail = defaultFail } = {}) { if (functionsSrc === undefined || functionsSrc.length === 0) { return fail('No function directory was specified') } diff --git a/packages/redirect-parser/src/all.ts b/packages/redirect-parser/src/all.ts index e583afaeb2..a3ffffa176 100644 --- a/packages/redirect-parser/src/all.ts +++ b/packages/redirect-parser/src/all.ts @@ -9,10 +9,10 @@ import { splitResults, concatResults } from './results.js' * files, then normalize and validate those. */ export const parseAllRedirects = async function ({ - redirectsFiles, + redirectsFiles = [], netlifyConfigPath, - configRedirects, - minimal, + configRedirects = [], + minimal = false, }: { redirectsFiles: string[] netlifyConfigPath?: string diff --git a/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/bundler.ts b/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/bundler.ts index 69243a93f8..589bf50633 100644 --- a/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/bundler.ts +++ b/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/bundler.ts @@ -78,9 +78,9 @@ const includedFilesToEsbuildExternals = async (includedFiles: string[], baseDir: export const bundleJsFile = async function ({ additionalModulePaths, config, - externalModules, + externalModules = [], featureFlags, - ignoredModules, + ignoredModules = [], mainFile, name, srcDir, @@ -139,7 +139,7 @@ export const bundleJsFile = async function ({ const outputExtension = getFileExtensionForFormat(moduleFormat, featureFlags, runtimeAPIVersion) try { - const { metafile, warnings } = await build({ + const { metafile = { inputs: {}, outputs: {} }, warnings } = await build({ banner: moduleFormat === MODULE_FORMAT.ESM ? { js: CJS_SHIM } : undefined, bundle: true, entryPoints: [srcFile], diff --git a/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/index.ts b/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/index.ts index 79fb487eef..5acbb40a22 100644 --- a/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/index.ts +++ b/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/index.ts @@ -50,7 +50,7 @@ const getExternalAndIgnoredModules = async ({ config, srcDir }: { config: Functi const bundle: BundleFunction = async ({ basePath, - config, + config = {}, extension, featureFlags, filename, @@ -71,7 +71,7 @@ const bundle: BundleFunction = async ({ cleanTempFiles, inputs, moduleFormat, - nativeNodeModules, + nativeNodeModules = {}, outputExtension, warnings, } = await bundleJsFile({ diff --git a/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/src_files.ts b/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/src_files.ts index 2d4e28cc37..e5029ea576 100644 --- a/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/src_files.ts +++ b/packages/zip-it-and-ship-it/src/runtimes/node/bundlers/esbuild/src_files.ts @@ -63,7 +63,7 @@ const getSrcFilesForDependencies = async function ({ const getSrcFilesForDependency = async function ({ dependency, basedir, - state, + state = getNewCache(), packageJson, pluginsModulesPath, nodeVersion, diff --git a/packages/zip-it-and-ship-it/src/runtimes/node/index.ts b/packages/zip-it-and-ship-it/src/runtimes/node/index.ts index dd96b489a6..17e2f8b221 100644 --- a/packages/zip-it-and-ship-it/src/runtimes/node/index.ts +++ b/packages/zip-it-and-ship-it/src/runtimes/node/index.ts @@ -39,7 +39,7 @@ const zipFunction: ZipFunction = async function ({ basePath, branch, cache, - config, + config = {}, destFolder, extension, featureFlags, @@ -94,7 +94,7 @@ const zipFunction: ZipFunction = async function ({ bundlerWarnings, includedFiles, inputs, - mainFile: finalMainFile, + mainFile: finalMainFile = mainFile, moduleFormat, nativeNodeModules, rewrites = new Map(), @@ -193,7 +193,7 @@ const zipFunction: ZipFunction = async function ({ } } -const zipWithFunctionWithFallback: ZipFunction = async ({ config, ...parameters }) => { +const zipWithFunctionWithFallback: ZipFunction = async ({ config = {}, ...parameters }) => { // If a specific JS bundler version is specified, we'll use it. if (config.nodeBundler !== NODE_BUNDLER.ESBUILD_ZISI) { return zipFunction({ ...parameters, config }) diff --git a/packages/zip-it-and-ship-it/src/runtimes/node/parser/index.ts b/packages/zip-it-and-ship-it/src/runtimes/node/parser/index.ts index 97ce15e675..90bddc8032 100644 --- a/packages/zip-it-and-ship-it/src/runtimes/node/parser/index.ts +++ b/packages/zip-it-and-ship-it/src/runtimes/node/parser/index.ts @@ -162,7 +162,7 @@ const parseRequire = ({ expression: CallExpression resolveDir: string }) => { - const { arguments: args } = expression + const { arguments: args = [] } = expression const [firstArg] = args if (firstArg === undefined) { diff --git a/packages/zip-it-and-ship-it/tests/main.test.ts b/packages/zip-it-and-ship-it/tests/main.test.ts index 145c069bb2..8599c64272 100644 --- a/packages/zip-it-and-ship-it/tests/main.test.ts +++ b/packages/zip-it-and-ship-it/tests/main.test.ts @@ -1949,7 +1949,7 @@ describe('zip-it-and-ship-it', () => { const tmpDirectory = await tmpName({ prefix: `zip-it-test` }) vi.mocked(shellUtils.runCommand).mockImplementation(async (...args) => { - const [rootCommand, , { cwd, env: environment } = {}] = args + const [rootCommand, , { cwd = undefined, env: environment = undefined } = {}] = args if (rootCommand === 'cargo') { const directory = join(environment.CARGO_TARGET_DIR, args[1][2], 'release') From 449859769d0c6921925cbf53a25a2083bf4499c4 Mon Sep 17 00:00:00 2001 From: James Garbutt <43081j@users.noreply.github.com> Date: Mon, 11 May 2026 09:44:50 +0100 Subject: [PATCH 6/6] chore: add 2nd argument to default failure --- packages/functions-utils/src/main.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/functions-utils/src/main.ts b/packages/functions-utils/src/main.ts index 7624e2270b..226c988b05 100644 --- a/packages/functions-utils/src/main.ts +++ b/packages/functions-utils/src/main.ts @@ -59,6 +59,6 @@ export const listAll = async function (functionsSrc, { fail = defaultFail } = {} } } -const defaultFail = function (message) { +const defaultFail = function (message, _opts?: unknown) { throw new Error(message) }