diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index bc70c0df..00000000 --- a/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -dist -src/generated diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 11ed6ea0..00000000 --- a/.eslintrc.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "env": { - "browser": true, - "commonjs": true, - "es2021": true - }, - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended-type-checked", - "plugin:require-extensions/recommended", - "plugin:import/recommended", - "plugin:import/typescript" - ], - "settings": { - "import/resolver": { - "typescript": true, - "node": true - } - }, - "overrides": [ - { - "files": ["packages/restate-sdk-examples/**/*.ts"], - "rules": { - "@typescript-eslint/require-await": "off", - "@typescript-eslint/no-floating-promises": "off" - } - } - ], - "parser": "@typescript-eslint/parser", - "parserOptions": { - "ecmaVersion": "latest", - "project": ["./tsconfig.eslint.json"] - }, - "plugins": ["@typescript-eslint", "require-extensions"], - "rules": { - "no-console": "error", - "eqeqeq": "error", - "@typescript-eslint/consistent-type-imports": "error", - "@typescript-eslint/consistent-type-exports": "error", - "@typescript-eslint/restrict-template-expressions": [ - "error", - { - "allowNever": true, - "allowArray": true - } - ] - } -} diff --git a/.gitignore b/.gitignore index 2d80836d..03fd5205 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,4 @@ docs-out .cdk.staging cdk.out lambda.zip +.DS_Store diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..06c768d8 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,16 @@ +node_modules +dist +**/src/generated/** +buf.lock +.idea +.api +!.api/.gitkeep +test_report +restate-sdk-test-suite.jar +.restate +docs-out +.wrangler +.next +.cdk.staging +cdk.out +lambda.zip diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 00000000..aa4c581f --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,87 @@ +import js from "@eslint/js"; +import globals from "globals"; +import tseslint from "typescript-eslint"; +import json from "@eslint/json"; + +export default [ + { + ignores: [ + "**/dist/**", + "**/node_modules/**", + "**/.next/**", + "**/.wrangler/**", + ".turbo/**", + "**/next-env.d.ts", + "**/sdk_shared_core_wasm_bindings.js", + "**/*.mjs", + "**/test/**", + "**/api-extractor.json", + ], + }, + { + files: ["**/*.{js,mjs,cjs}"], + ...js.configs.recommended, + languageOptions: { + globals: globals.node, + }, + }, + ...tseslint.configs.recommendedTypeChecked.map((config) => ({ + ...config, + files: ["**/*.{ts,tsx,mts,cts}"], + })), + { + files: ["**/*.{ts,tsx,mts,cts}"], + languageOptions: { + globals: globals.node, + parserOptions: { + projectService: true, + tsconfigRootDir: import.meta.dirname, + }, + }, + rules: { + "@typescript-eslint/no-unused-vars": [ + "error", + { argsIgnorePattern: "^_", varsIgnorePattern: "^_" }, + ], + "@typescript-eslint/no-empty-object-type": [ + "error", + { allowInterfaces: "always" }, + ], + "@typescript-eslint/restrict-template-expressions": [ + "error", + { + allowNever: true, + allowArray: true, + }, + ], + "no-console": "error", + }, + }, + { + files: [ + "**/packages/restate-sdk-examples/**/*.ts", + "**/packages/restate-e2e-services/**/*.ts", + "**/packages/restate-sdk-testcontainers/**/*.ts", + ], + rules: { + "no-console": "off", + "@typescript-eslint/require-await": "off", + "@typescript-eslint/no-floating-promises": "off", + }, + }, + { + files: ["**/*.config.{js,ts,mjs,mts}"], + ...tseslint.configs.disableTypeChecked, + }, + { + files: ["**/*.json"], + ignores: ["package-lock.json"], + language: "json/json", + ...json.configs.recommended, + }, + { + files: ["**/tsconfig*.json", ".vscode/*.json"], + language: "json/jsonc", + ...json.configs.recommended, + }, +]; diff --git a/package-lock.json b/package-lock.json index 0b5d2b9d..19f8cbb6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,19 +26,24 @@ ], "devDependencies": { "@arethetypeswrong/cli": "^0.15.3", - "@microsoft/api-extractor": "^7.52.8", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "^9.38.0", + "@eslint/json": "^0.13.2", + "@microsoft/api-extractor": "^7.53.2", "@release-it-plugins/workspaces": "^4.2.0", "@types/node": "^20.19.11", - "@typescript-eslint/eslint-plugin": "^7.13.0", - "@typescript-eslint/parser": "^7.13.0", - "eslint": "^8.57.0", + "@typescript-eslint/eslint-plugin": "^8.46.2", + "@typescript-eslint/parser": "^8.46.2", + "eslint": "^9.38.0", "eslint-import-resolver-typescript": "^3.6.1", - "eslint-plugin-import": "^2.29.1", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-require-extensions": "^0.1.3", + "globals": "^16.4.0", "prettier": "^2.8.4", "release-it": "^17.11.0", "typedoc": "^0.28.10", - "typescript": "^5.9.2", + "typescript": "^5.9.3", + "typescript-eslint": "^8.46.2", "vitest": "^3.0.9", "wasm-pack": "^0.0.0", "wasm-pack-inline": "^0.1.2" @@ -835,17 +840,71 @@ "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/config-array": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", + "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-array/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" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.1.tgz", + "integrity": "sha512-csZAzkNhsgwb0I/UAV6/RGFTbiakPCf0ZrGmrIxQpYvGZ00PhTkSnyKNolphgIvmnJeGw6rcGVEXfTzUnFuEvw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.16.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.16.0.tgz", + "integrity": "sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", "dev": true, "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -853,7 +912,7 @@ "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -876,6 +935,19 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/@eslint/eslintrc/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/@eslint/eslintrc/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -897,13 +969,83 @@ } }, "node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "version": "9.38.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.38.0.tgz", + "integrity": "sha512-UZ1VpFvXf9J06YG9xQBdnzU+kthors6KjhMAl6f4gH4usHyh31rUf2DLGInT8RFYIReYXNSydgPY0V2LuWgl7A==", "dev": true, "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/json": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@eslint/json/-/json-0.13.2.tgz", + "integrity": "sha512-yWLyRE18rHgHXhWigRpiyv1LDPkvWtC6oa7QHXW7YdP6gosJoq7BiLZW2yCs9U7zN7X4U3ZeOJjepA10XAOIMw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.15.2", + "@eslint/plugin-kit": "^0.3.5", + "@humanwhocodes/momoa": "^3.3.9", + "natural-compare": "^1.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/json/node_modules/@eslint/core": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", + "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/json/node_modules/@eslint/plugin-kit": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz", + "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.15.2", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.0.tgz", + "integrity": "sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.16.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@fastify/busboy": { @@ -929,33 +1071,28 @@ "@shikijs/vscode-textmate": "^10.0.2" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, "engines": { - "node": ">=10.10.0" + "node": ">=18.18.0" } }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/@humanfs/node": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", "dev": true, - "license": "ISC", + "license": "Apache-2.0", "dependencies": { - "brace-expansion": "^1.1.7" + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.4.0" }, "engines": { - "node": "*" + "node": ">=18.18.0" } }, "node_modules/@humanwhocodes/module-importer": { @@ -972,13 +1109,29 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", + "node_modules/@humanwhocodes/momoa": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/@humanwhocodes/momoa/-/momoa-3.3.10.tgz", + "integrity": "sha512-KWiFQpSAqEIyrTXko3hFNLeQvSK8zXlJQzhhxsyVn58WFRYXST99b3Nqnu+ttOtjds2Pl2grUHGpe2NzhPynuQ==", "dev": true, - "license": "BSD-3-Clause" + "license": "Apache-2.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, "node_modules/@iarna/toml": { "version": "2.2.5", @@ -1429,6 +1582,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "dev": true, "license": "MIT", "engines": { "node": "20 || >=22" @@ -1438,6 +1592,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "dev": true, "license": "MIT", "dependencies": { "@isaacs/balanced-match": "^4.0.1" @@ -1559,19 +1714,19 @@ } }, "node_modules/@microsoft/api-extractor": { - "version": "7.53.1", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.53.1.tgz", - "integrity": "sha512-bul5eTNxijLdDBqLye74u9494sRmf+9QULtec9Od0uHnifahGeNt8CC4/xCdn7mVyEBrXIQyQ5+sc4Uc0QfBSA==", + "version": "7.53.2", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.53.2.tgz", + "integrity": "sha512-hG3+wJY6aZlkQhGpUbhq1C5F1uJLsmDjrwVea+WT18RbD1XtIGn/c4uyMF7gdXLjLNwErB47hnRk9QNjpEHUWA==", "dev": true, "license": "MIT", "dependencies": { - "@microsoft/api-extractor-model": "7.31.1", + "@microsoft/api-extractor-model": "7.31.2", "@microsoft/tsdoc": "~0.15.1", "@microsoft/tsdoc-config": "~0.17.1", - "@rushstack/node-core-library": "5.17.0", + "@rushstack/node-core-library": "5.17.1", "@rushstack/rig-package": "0.6.0", - "@rushstack/terminal": "0.19.1", - "@rushstack/ts-command-line": "5.1.1", + "@rushstack/terminal": "0.19.2", + "@rushstack/ts-command-line": "5.1.2", "lodash": "~4.17.15", "minimatch": "10.0.3", "resolve": "~1.22.1", @@ -1584,15 +1739,15 @@ } }, "node_modules/@microsoft/api-extractor-model": { - "version": "7.31.1", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.31.1.tgz", - "integrity": "sha512-Dhnip5OFKbl85rq/ICHBFGhV4RA5UQSl8AC/P/zoGvs+CBudPkatt5kIhMGiYgVPnUWmfR6fcp38+1AFLYNtUw==", + "version": "7.31.2", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.31.2.tgz", + "integrity": "sha512-d0WwxwBLZaHokTrOngqHVkQK59NlveV5RE4wEpjaybhSNmEK9N7KPCcT5n8JcpH6k5o6AhxG47g1km2D7BZw8Q==", "dev": true, "license": "MIT", "dependencies": { "@microsoft/tsdoc": "~0.15.1", "@microsoft/tsdoc-config": "~0.17.1", - "@rushstack/node-core-library": "5.17.0" + "@rushstack/node-core-library": "5.17.1" } }, "node_modules/@microsoft/api-extractor/node_modules/lru-cache": { @@ -2579,9 +2734,9 @@ "license": "MIT" }, "node_modules/@rushstack/node-core-library": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.17.0.tgz", - "integrity": "sha512-24vt1GbHN6kyIglRMTVpyEiNRRRJK8uZHc1XoGAhmnTDKnrWet8OmOpImMswJIe6gM78eV8cMg1HXwuUHkSSgg==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.17.1.tgz", + "integrity": "sha512-Mtcsa0aRJgYJOpeTe4qElLTRBlijNohdliq/xOhqce5rlzMIfLr73j9wUuj6GYPZPbG0S+is/RL2l0m/vnL55A==", "dev": true, "license": "MIT", "dependencies": { @@ -2676,13 +2831,13 @@ } }, "node_modules/@rushstack/terminal": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.19.1.tgz", - "integrity": "sha512-jsBuSad67IDVMO2yp0hDfs0OdE4z3mDIjIL2pclDT3aEJboeZXE85e1HjuD0F6JoW3XgHvDwoX+WOV+AVTDQeA==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.19.2.tgz", + "integrity": "sha512-SJLC+6oUrJ0OOpuuwXxhktCTE3jeYVIwtvREdNhbcnVQrYGaDJpAoBgNVfw+VH0pTPpFLBqoPHsRRz7mj7WlbA==", "dev": true, "license": "MIT", "dependencies": { - "@rushstack/node-core-library": "5.17.0", + "@rushstack/node-core-library": "5.17.1", "@rushstack/problem-matcher": "0.1.1", "supports-color": "~8.1.1" }, @@ -2696,13 +2851,13 @@ } }, "node_modules/@rushstack/ts-command-line": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-5.1.1.tgz", - "integrity": "sha512-HPzFsUcr+wZ3oQI08Ec/E6cuiAVHKzrXZGHhwiwIGygAFiqN5QzX+ff30n70NU2WyE26CykgMwBZZSSyHCJrzA==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-5.1.2.tgz", + "integrity": "sha512-jn0EnSefYrkZDrBGd6KGuecL84LI06DgzL4hVQ46AUijNBt2nRU/ST4HhrfII/w91siCd1J/Okvxq/BS75Me/A==", "dev": true, "license": "MIT", "dependencies": { - "@rushstack/terminal": "0.19.1", + "@rushstack/terminal": "0.19.2", "@types/argparse": "1.0.38", "argparse": "~1.0.9", "string-argv": "~0.3.1" @@ -2902,6 +3057,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", @@ -2969,122 +3131,160 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", - "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.2.tgz", + "integrity": "sha512-ZGBMToy857/NIPaaCucIUQgqueOiq7HeAKkhlvqVV4lm089zUFW6ikRySx2v+cAhKeUCPuWVHeimyk6Dw1iY3w==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/type-utils": "7.18.0", - "@typescript-eslint/utils": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/scope-manager": "8.46.2", + "@typescript-eslint/type-utils": "8.46.2", + "@typescript-eslint/utils": "8.46.2", + "@typescript-eslint/visitor-keys": "8.46.2", "graphemer": "^1.4.0", - "ignore": "^5.3.1", + "ignore": "^7.0.0", "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.1.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@typescript-eslint/parser": "^8.46.2", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" } }, "node_modules/@typescript-eslint/parser": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", - "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.2.tgz", + "integrity": "sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/scope-manager": "8.46.2", + "@typescript-eslint/types": "8.46.2", + "@typescript-eslint/typescript-estree": "8.46.2", + "@typescript-eslint/visitor-keys": "8.46.2", "debug": "^4.3.4" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.2.tgz", + "integrity": "sha512-PULOLZ9iqwI7hXcmL4fVfIsBi6AN9YxRc0frbvmg8f+4hQAjQ5GYNKK0DIArNo+rOKmR/iBYwkpBmnIwin4wBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.46.2", + "@typescript-eslint/types": "^8.46.2", + "debug": "^4.3.4" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "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" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", - "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.2.tgz", + "integrity": "sha512-LF4b/NmGvdWEHD2H4MsHD8ny6JpiVNDzrSZr3CsckEgCbAGZbYM4Cqxvi9L+WqDMT+51Ozy7lt2M+d0JLEuBqA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0" + "@typescript-eslint/types": "8.46.2", + "@typescript-eslint/visitor-keys": "8.46.2" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.2.tgz", + "integrity": "sha512-a7QH6fw4S57+F5y2FIxxSDyi5M4UfGF+Jl1bCGd7+L4KsaUY80GsiF/t0UoRFDHAguKlBaACWJRmdrc6Xfkkag==", + "dev": true, + "license": "MIT", + "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" + } + }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", - "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.46.2.tgz", + "integrity": "sha512-HbPM4LbaAAt/DjxXaG9yiS9brOOz6fabal4uvUmaUYe6l3K1phQDMQKBRUrr06BQkxkvIZVVHttqiybM9nJsLA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/utils": "7.18.0", + "@typescript-eslint/types": "8.46.2", + "@typescript-eslint/typescript-estree": "8.46.2", + "@typescript-eslint/utils": "8.46.2", "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.1.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", - "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.2.tgz", + "integrity": "sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ==", "dev": true, "license": "MIT", "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -3092,32 +3292,32 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", - "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.2.tgz", + "integrity": "sha512-f7rW7LJ2b7Uh2EiQ+7sza6RDZnajbNbemn54Ob6fRwQbgcIn+GWfyuHDHRYgRoZu1P4AayVScrRW+YfbTvPQoQ==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/project-service": "8.46.2", + "@typescript-eslint/tsconfig-utils": "8.46.2", + "@typescript-eslint/types": "8.46.2", + "@typescript-eslint/visitor-keys": "8.46.2", "debug": "^4.3.4", - "globby": "^11.1.0", + "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.1.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { @@ -3147,52 +3347,59 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", - "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.2.tgz", + "integrity": "sha512-sExxzucx0Tud5tE0XqR0lT0psBQvEpnpiul9XbGUB1QwpWJJAps1O/Z7hJxLGiZLBKMCutjTzDgmd1muEhBnVg==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0" + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.46.2", + "@typescript-eslint/types": "8.46.2", + "@typescript-eslint/typescript-estree": "8.46.2" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", - "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.2.tgz", + "integrity": "sha512-tUFMXI4gxzzMXt4xpGJEsBsTox0XbNQ1y94EwlD/CuZwFcQP79xfQqMhau9HsRc/J0cAPA/HZt1dZPtGn9V/7w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.18.0", - "eslint-visitor-keys": "^3.4.3" + "@typescript-eslint/types": "8.46.2", + "eslint-visitor-keys": "^4.2.1" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "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==", "dev": true, - "license": "ISC" + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } }, "node_modules/@unrs/resolver-binding-android-arm-eabi": { "version": "1.11.1", @@ -3994,16 +4201,6 @@ "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", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "license": "MIT", - "engines": { - "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", @@ -5918,19 +6115,6 @@ "node": ">=8" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/docker-compose": { "version": "0.24.8", "resolved": "https://registry.npmjs.org/docker-compose/-/docker-compose-0.24.8.tgz", @@ -5943,19 +6127,6 @@ "node": ">= 6.0.0" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/dot-prop": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-9.0.0.tgz", @@ -6348,60 +6519,63 @@ } }, "node_modules/eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "version": "9.38.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.38.0.tgz", + "integrity": "sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.1", + "@eslint/config-helpers": "^0.4.1", + "@eslint/core": "^0.16.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.38.0", + "@eslint/plugin-kit": "^0.4.0", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-import-resolver-node": { @@ -6583,9 +6757,9 @@ } }, "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -6593,7 +6767,7 @@ "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -6629,6 +6803,19 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/eslint/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==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/eslint/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -6650,18 +6837,31 @@ } }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.2.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/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==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -6908,16 +7108,16 @@ "license": "MIT" }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.0.0" } }, "node_modules/fill-range": { @@ -6963,18 +7163,17 @@ } }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "license": "MIT", "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16" } }, "node_modules/flatbuffers": { @@ -7026,6 +7225,7 @@ "version": "11.3.2", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz", "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==", + "dev": true, "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", @@ -7323,16 +7523,13 @@ } }, "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.4.0.tgz", + "integrity": "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==", "dev": true, "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7345,35 +7542,14 @@ "dev": true, "license": "MIT", "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/gopd": { @@ -7593,6 +7769,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, "license": "MIT", "engines": { "node": ">= 4" @@ -8255,16 +8432,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-regex": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", @@ -8594,6 +8761,7 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, "license": "MIT", "dependencies": { "universalify": "^2.0.0" @@ -9055,6 +9223,7 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -9064,6 +9233,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, "license": "MIT", "dependencies": { "mime-db": "1.52.0" @@ -9572,6 +9742,7 @@ "version": "10.0.3", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", + "dev": true, "license": "ISC", "dependencies": { "@isaacs/brace-expansion": "^5.0.0" @@ -10425,16 +10596,6 @@ "dev": true, "license": "MIT" }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/pathe": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", @@ -10648,6 +10809,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -11166,23 +11328,6 @@ "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/rollup": { "version": "4.52.4", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.4.tgz", @@ -11374,6 +11519,7 @@ "version": "7.7.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "devOptional": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -11638,16 +11784,6 @@ "node": ">=8" } }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -12171,13 +12307,6 @@ "b4a": "^1.6.4" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "license": "MIT" - }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", @@ -12320,16 +12449,16 @@ } }, "node_modules/ts-api-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", - "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", + "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==", "dev": true, "license": "MIT", "engines": { - "node": ">=16" + "node": ">=18.12" }, "peerDependencies": { - "typescript": ">=4.2.0" + "typescript": ">=4.8.4" } }, "node_modules/ts-expose-internals-conditionally": { @@ -12397,19 +12526,6 @@ "node": ">= 0.8.0" } }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "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", @@ -12552,6 +12668,30 @@ "node": ">=14.17" } }, + "node_modules/typescript-eslint": { + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.46.2.tgz", + "integrity": "sha512-vbw8bOmiuYNdzzV3lsiWv6sRwjyuKJMQqWulBOU7M0RrxedXledX8G8kBbQeiOYDnTfiXz0Y4081E1QMNB6iQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.46.2", + "@typescript-eslint/parser": "8.46.2", + "@typescript-eslint/typescript-estree": "8.46.2", + "@typescript-eslint/utils": "8.46.2" + }, + "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" + } + }, "node_modules/typical": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", @@ -12658,6 +12798,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, "license": "MIT", "engines": { "node": ">= 10.0.0" @@ -14547,215 +14688,6 @@ "undici-types": "~6.19.2" } }, - "templates/lambda/node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.46.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.46.0", - "@typescript-eslint/type-utils": "8.46.0", - "@typescript-eslint/utils": "8.46.0", - "@typescript-eslint/visitor-keys": "8.46.0", - "graphemer": "^1.4.0", - "ignore": "^7.0.0", - "natural-compare": "^1.4.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-eslint/parser": "^8.46.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "templates/lambda/node_modules/@typescript-eslint/parser": { - "version": "8.46.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@typescript-eslint/scope-manager": "8.46.0", - "@typescript-eslint/types": "8.46.0", - "@typescript-eslint/typescript-estree": "8.46.0", - "@typescript-eslint/visitor-keys": "8.46.0", - "debug": "^4.3.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" - } - }, - "templates/lambda/node_modules/@typescript-eslint/scope-manager": { - "version": "8.46.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.46.0", - "@typescript-eslint/visitor-keys": "8.46.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "templates/lambda/node_modules/@typescript-eslint/type-utils": { - "version": "8.46.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.46.0", - "@typescript-eslint/typescript-estree": "8.46.0", - "@typescript-eslint/utils": "8.46.0", - "debug": "^4.3.4", - "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": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "templates/lambda/node_modules/@typescript-eslint/types": { - "version": "8.46.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "templates/lambda/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.46.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/project-service": "8.46.0", - "@typescript-eslint/tsconfig-utils": "8.46.0", - "@typescript-eslint/types": "8.46.0", - "@typescript-eslint/visitor-keys": "8.46.0", - "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" - } - }, - "templates/lambda/node_modules/@typescript-eslint/utils": { - "version": "8.46.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.46.0", - "@typescript-eslint/types": "8.46.0", - "@typescript-eslint/typescript-estree": "8.46.0" - }, - "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" - } - }, - "templates/lambda/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.46.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.46.0", - "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" - } - }, - "templates/lambda/node_modules/brace-expansion": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "templates/lambda/node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "templates/lambda/node_modules/ignore": { - "version": "7.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "templates/lambda/node_modules/minimatch": { - "version": "9.0.5", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "templates/lambda/node_modules/prettier": { "version": "3.6.2", "dev": true, @@ -14770,17 +14702,6 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "templates/lambda/node_modules/ts-api-utils": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.12" - }, - "peerDependencies": { - "typescript": ">=4.8.4" - } - }, "templates/lambda/node_modules/ts-node": { "version": "10.9.2", "dev": true, diff --git a/package.json b/package.json index 32931884..ead425a4 100644 --- a/package.json +++ b/package.json @@ -45,19 +45,24 @@ }, "devDependencies": { "@arethetypeswrong/cli": "^0.15.3", - "@microsoft/api-extractor": "^7.52.8", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "^9.38.0", + "@eslint/json": "^0.13.2", + "@microsoft/api-extractor": "^7.53.2", "@release-it-plugins/workspaces": "^4.2.0", "@types/node": "^20.19.11", - "@typescript-eslint/eslint-plugin": "^7.13.0", - "@typescript-eslint/parser": "^7.13.0", - "eslint": "^8.57.0", + "@typescript-eslint/eslint-plugin": "^8.46.2", + "@typescript-eslint/parser": "^8.46.2", + "eslint": "^9.38.0", "eslint-import-resolver-typescript": "^3.6.1", - "eslint-plugin-import": "^2.29.1", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-require-extensions": "^0.1.3", + "globals": "^16.4.0", "prettier": "^2.8.4", "release-it": "^17.11.0", "typedoc": "^0.28.10", - "typescript": "^5.9.2", + "typescript": "^5.9.3", + "typescript-eslint": "^8.46.2", "vitest": "^3.0.9", "wasm-pack": "^0.0.0", "wasm-pack-inline": "^0.1.2" diff --git a/packages/restate-e2e-services/.eslintignore b/packages/restate-e2e-services/.eslintignore deleted file mode 100644 index 96eb6d87..00000000 --- a/packages/restate-e2e-services/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -dist -src/generated \ No newline at end of file diff --git a/packages/restate-e2e-services/.eslintrc.json b/packages/restate-e2e-services/.eslintrc.json deleted file mode 100644 index 216ab0f7..00000000 --- a/packages/restate-e2e-services/.eslintrc.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "env": { - "browser": true, - "commonjs": true, - "es2021": true - }, - "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"], - "overrides": [], - "parser": "@typescript-eslint/parser", - "parserOptions": { - "ecmaVersion": "latest" - }, - "plugins": ["@typescript-eslint"], - "rules": { - "@typescript-eslint/no-empty-function": "off" - } -} diff --git a/packages/restate-e2e-services/package.json b/packages/restate-e2e-services/package.json index a4032c23..f9396163 100644 --- a/packages/restate-e2e-services/package.json +++ b/packages/restate-e2e-services/package.json @@ -22,9 +22,9 @@ ], "scripts": { "build": "tsc -b", - "lint": "eslint --ignore-path .eslintignore --max-warnings=0 --ext .ts .", - "format": "prettier --ignore-path .eslintignore --write \"**/*.+(js|ts|json)\"", - "format-check": "prettier --ignore-path .eslintignore --check \"**/*.+(js|ts|json)\"", + "lint": "eslint --max-warnings=0 .", + "format": "prettier --ignore-path ../../.prettierignore --write \"**/*.+(js|ts|json)\"", + "format-check": "prettier --ignore-path ../../.prettierignore --check \"**/*.+(js|ts|json)\"", "test": "vitest run --silent --passWithNoTests", "verify": "npm run format-check && npm run lint && npm run build", "release": "" diff --git a/packages/restate-e2e-services/src/app.ts b/packages/restate-e2e-services/src/app.ts index fcbf1d66..243d544f 100644 --- a/packages/restate-e2e-services/src/app.ts +++ b/packages/restate-e2e-services/src/app.ts @@ -31,15 +31,11 @@ import path from "path"; // Optional: trigger a heap snapshot on signal process.on("SIGUSR2", () => { const filename = path.join("/opt", `heap-${Date.now()}.heapsnapshot`); - // eslint-disable-next-line no-console console.log(`Writing snapshot to ${filename}...`); heapdump.writeSnapshot(filename, (err, filename) => { if (err) { - // eslint-disable-next-line no-console console.error(err); - } - // eslint-disable-next-line no-console - else console.log(`Heap snapshot written to ${filename}`); + } else console.log(`Heap snapshot written to ${filename}`); }); }); @@ -101,11 +97,9 @@ server.on("session", (session) => { }); setInterval(() => { - // eslint-disable-next-line no-console console.log( `${new Date().toISOString()}: Inflight requests: ${INFLIGHT_REQUESTS}` ); - // eslint-disable-next-line no-console console.table( Array.from(sessions.values()).map((set: Set) => ({ "#streams": set.size, diff --git a/packages/restate-e2e-services/src/cancel_test.ts b/packages/restate-e2e-services/src/cancel_test.ts index fbbc0e21..014ca5cc 100644 --- a/packages/restate-e2e-services/src/cancel_test.ts +++ b/packages/restate-e2e-services/src/cancel_test.ts @@ -8,7 +8,7 @@ // https://github.com/restatedev/e2e/blob/main/LICENSE import * as restate from "@restatedev/restate-sdk"; -import { AwakeableHolder } from "./awakeable_holder.js"; +import { type AwakeableHolder } from "./awakeable_holder.js"; import { REGISTRY } from "./services.js"; export const CancelTestServiceFQN = "CancelTestRunner"; diff --git a/packages/restate-e2e-services/src/event_handler.ts b/packages/restate-e2e-services/src/event_handler.ts index 6e6a19b4..4cec769f 100644 --- a/packages/restate-e2e-services/src/event_handler.ts +++ b/packages/restate-e2e-services/src/event_handler.ts @@ -9,7 +9,7 @@ import * as restate from "@restatedev/restate-sdk"; import { REGISTRY } from "./services.js"; -import { CounterApi } from "./counter.js"; +import { type CounterApi } from "./counter.js"; const EventHandlerFQN = "EventHandler"; diff --git a/packages/restate-e2e-services/src/interpreter/interpreter.ts b/packages/restate-e2e-services/src/interpreter/interpreter.ts index 20e348c3..b84ac295 100644 --- a/packages/restate-e2e-services/src/interpreter/interpreter.ts +++ b/packages/restate-e2e-services/src/interpreter/interpreter.ts @@ -82,7 +82,7 @@ class ProgramInterpreter { const promises = new Map(); const commands = program.commands; for (let i = 0; i < commands.length; i++) { - const command = commands[i]; + const command = commands[i]!; switch (command.kind) { case CommandType.SET_STATE: { ctx.set(`key-${command.key}`, `value-${command.key}`); diff --git a/packages/restate-sdk-clients/.eslintignore b/packages/restate-sdk-clients/.eslintignore deleted file mode 100644 index bc70c0df..00000000 --- a/packages/restate-sdk-clients/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -dist -src/generated diff --git a/packages/restate-sdk-clients/package.json b/packages/restate-sdk-clients/package.json index 7c3697f4..56c841a1 100644 --- a/packages/restate-sdk-clients/package.json +++ b/packages/restate-sdk-clients/package.json @@ -39,9 +39,9 @@ "build:cjs": "tsc --module commonjs --verbatimModuleSyntax false --moduleResolution node10 --outDir ./dist/cjs --declaration --declarationDir ./dist/cjs && echo >./dist/cjs/package.json '{\"type\":\"commonjs\"}'", "build:esm": "tsc --outDir ./dist/esm --declaration --declarationDir ./dist/esm", "test": "vitest run --silent --passWithNoTests", - "lint": "eslint --ignore-path .eslintignore --max-warnings=0 --ext .ts .", - "format": "prettier --ignore-path .eslintignore --write \"**/*.+(js|ts|json)\"", - "format-check": "prettier --ignore-path .eslintignore --check \"**/*.+(js|ts|json)\"", + "lint": "eslint --max-warnings=0 .", + "format": "prettier --ignore-path ../../.prettierignore --write \"**/*.+(js|ts|json)\"", + "format-check": "prettier --ignore-path ../../.prettierignore --check \"**/*.+(js|ts|json)\"", "attw": "attw --pack", "verify": "npm run format-check && npm run lint && npm run test && npm run build && npm run attw && npm run api:extract", "release": "release-it" diff --git a/packages/restate-sdk-clients/src/ingress.ts b/packages/restate-sdk-clients/src/ingress.ts index cac3c3bf..a3dfbf5e 100644 --- a/packages/restate-sdk-clients/src/ingress.ts +++ b/packages/restate-sdk-clients/src/ingress.ts @@ -47,7 +47,7 @@ export class HttpCallError extends Error { constructor( public readonly status: number, public readonly responseText: string, - public readonly message: string + public override readonly message: string ) { super(message); } @@ -414,7 +414,7 @@ class HttpIngress implements Ingress { async resolveAwakeable( id: string, - payload?: T | undefined, + payload?: T, payloadSerde?: Serde ): Promise { const url = `${this.opts.url}/restate/a/${id}/resolve`; diff --git a/packages/restate-sdk-core/.eslintignore b/packages/restate-sdk-core/.eslintignore deleted file mode 100644 index bc70c0df..00000000 --- a/packages/restate-sdk-core/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -dist -src/generated diff --git a/packages/restate-sdk-core/package.json b/packages/restate-sdk-core/package.json index b74b0745..8c12ddc7 100644 --- a/packages/restate-sdk-core/package.json +++ b/packages/restate-sdk-core/package.json @@ -38,9 +38,9 @@ "build": "npm run build:cjs && npm run build:esm", "build:cjs": "tsc --module commonjs --verbatimModuleSyntax false --moduleResolution node10 --outDir ./dist/cjs --declaration --declarationDir ./dist/cjs && echo >./dist/cjs/package.json '{\"type\":\"commonjs\"}'", "build:esm": "tsc --outDir ./dist/esm --declaration --declarationDir ./dist/esm", - "lint": "eslint --ignore-path .eslintignore --max-warnings=0 --ext .ts .", - "format": "prettier --ignore-path .eslintignore --write \"**/*.+(js|ts|json)\"", - "format-check": "prettier --ignore-path .eslintignore --check \"**/*.+(js|ts|json)\"", + "lint": "eslint --max-warnings=0 .", + "format": "prettier --ignore-path ../../.prettierignore --write \"**/*.+(js|ts|json)\"", + "format-check": "prettier --ignore-path ../../.prettierignore --check \"**/*.+(js|ts|json)\"", "attw": "attw --pack", "verify": "npm run format-check && npm run lint && npm run build && npm run attw && npm run api:extract", "release": "release-it" diff --git a/packages/restate-sdk-core/src/core.ts b/packages/restate-sdk-core/src/core.ts index ed43a09a..ab1379ce 100644 --- a/packages/restate-sdk-core/src/core.ts +++ b/packages/restate-sdk-core/src/core.ts @@ -10,9 +10,6 @@ */ /* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/no-namespace */ -/* eslint-disable @typescript-eslint/ban-types */ -/* eslint-disable @typescript-eslint/no-empty-interface */ // ----------- markers ------------------------------------------------------- diff --git a/packages/restate-sdk-core/src/serde_api.ts b/packages/restate-sdk-core/src/serde_api.ts index 99dd108c..c85f69c6 100644 --- a/packages/restate-sdk-core/src/serde_api.ts +++ b/packages/restate-sdk-core/src/serde_api.ts @@ -11,7 +11,6 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/no-namespace */ -/* eslint-disable @typescript-eslint/ban-types */ export interface Serde { contentType?: string; diff --git a/packages/restate-sdk-examples/.eslintignore b/packages/restate-sdk-examples/.eslintignore deleted file mode 100644 index bc70c0df..00000000 --- a/packages/restate-sdk-examples/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -dist -src/generated diff --git a/packages/restate-sdk-examples/package.json b/packages/restate-sdk-examples/package.json index 226d5b16..263d954d 100644 --- a/packages/restate-sdk-examples/package.json +++ b/packages/restate-sdk-examples/package.json @@ -22,9 +22,9 @@ ], "scripts": { "build": "tsc -b", - "lint": "eslint --ignore-path .eslintignore --max-warnings=0 --ext .ts .", - "format": "prettier --ignore-path .eslintignore --write \"**/*.+(js|ts|json)\"", - "format-check": "prettier --ignore-path .eslintignore --check \"**/*.+(js|ts|json)\"", + "lint": "eslint --max-warnings=0 .", + "format": "prettier --ignore-path ../../.prettierignore --write \"**/*.+(js|ts|json)\"", + "format-check": "prettier --ignore-path ../../.prettierignore --check \"**/*.+(js|ts|json)\"", "test": "vitest run --silent", "verify": "npm run format-check && npm run lint && npm run build", "release": "", diff --git a/packages/restate-sdk-examples/src/ingress_client.ts b/packages/restate-sdk-examples/src/ingress_client.ts index 0fd057df..5da61bbe 100644 --- a/packages/restate-sdk-examples/src/ingress_client.ts +++ b/packages/restate-sdk-examples/src/ingress_client.ts @@ -9,8 +9,6 @@ * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE */ -/* eslint-disable no-console */ - import * as restate from "@restatedev/restate-sdk-clients"; import type { Greeter } from "./greeter.js"; diff --git a/packages/restate-sdk-examples/src/workflow.ts b/packages/restate-sdk-examples/src/workflow.ts index 2d962db7..ab08572e 100644 --- a/packages/restate-sdk-examples/src/workflow.ts +++ b/packages/restate-sdk-examples/src/workflow.ts @@ -9,8 +9,6 @@ * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE */ -/* eslint-disable @typescript-eslint/no-unused-vars */ - import * as restate from "@restatedev/restate-sdk"; interface PaymentRequest { diff --git a/packages/restate-sdk-examples/src/workflow_client.ts b/packages/restate-sdk-examples/src/workflow_client.ts index a7319eea..36e609ed 100644 --- a/packages/restate-sdk-examples/src/workflow_client.ts +++ b/packages/restate-sdk-examples/src/workflow_client.ts @@ -9,8 +9,6 @@ * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE */ -/* eslint-disable no-console */ - import * as restate from "@restatedev/restate-sdk-clients"; import type { PaymentWorkflow } from "./workflow.js"; diff --git a/packages/restate-sdk-testcontainers/.eslintignore b/packages/restate-sdk-testcontainers/.eslintignore deleted file mode 100644 index bc70c0df..00000000 --- a/packages/restate-sdk-testcontainers/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -dist -src/generated diff --git a/packages/restate-sdk-testcontainers/package.json b/packages/restate-sdk-testcontainers/package.json index ea06850e..6eede98e 100644 --- a/packages/restate-sdk-testcontainers/package.json +++ b/packages/restate-sdk-testcontainers/package.json @@ -39,9 +39,9 @@ "build:cjs": "tsc --module commonjs --verbatimModuleSyntax false --moduleResolution node10 --outDir ./dist/cjs --declaration --declarationDir ./dist/cjs && echo >./dist/cjs/package.json '{\"type\":\"commonjs\"}'", "build:esm": "tsc --outDir ./dist/esm --declaration --declarationDir ./dist/esm", "test": "vitest run --silent --passWithNoTests", - "lint": "eslint --ignore-path .eslintignore --max-warnings=0 --ext .ts .", - "format": "prettier --ignore-path .eslintignore --write \"**/*.+(js|ts|json)\"", - "format-check": "prettier --ignore-path .eslintignore --check \"**/*.+(js|ts|json)\"", + "lint": "eslint --max-warnings=0 .", + "format": "prettier --ignore-path ../../.prettierignore --write \"**/*.+(js|ts|json)\"", + "format-check": "prettier --ignore-path ../../.prettierignore --check \"**/*.+(js|ts|json)\"", "attw": "attw --pack", "verify": "npm run format-check && npm run lint && npm run test && npm run build && npm run attw && npm run api:extract", "release": "release-it" diff --git a/packages/restate-sdk-testcontainers/src/restate_test_environment.ts b/packages/restate-sdk-testcontainers/src/restate_test_environment.ts index 59036b2b..0387bbbd 100644 --- a/packages/restate-sdk-testcontainers/src/restate_test_environment.ts +++ b/packages/restate-sdk-testcontainers/src/restate_test_environment.ts @@ -9,8 +9,6 @@ * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE */ -/* eslint-disable no-console */ - import { endpoint, createEndpointHandler, @@ -207,8 +205,6 @@ export class RestateTestEnvironment { } } -// eslint-disable-next-line @typescript-eslint/no-explicit-any - export class RestateContainer extends GenericContainer { constructor(version = "latest") { super(`docker.io/restatedev/restate:${version}`); @@ -255,7 +251,7 @@ export class StateProxy { return null; } - return serde.deserialize(table[0].value); + return serde.deserialize(table[0]!.value); } // Read all values from state under a given Virtual Object or Workflow key diff --git a/packages/restate-sdk-zod/.eslintignore b/packages/restate-sdk-zod/.eslintignore deleted file mode 100644 index bc70c0df..00000000 --- a/packages/restate-sdk-zod/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -dist -src/generated diff --git a/packages/restate-sdk-zod/package.json b/packages/restate-sdk-zod/package.json index de8deb11..7b68c01d 100644 --- a/packages/restate-sdk-zod/package.json +++ b/packages/restate-sdk-zod/package.json @@ -46,9 +46,9 @@ "build": "npm run build:cjs && npm run build:esm", "build:cjs": "tsc --module commonjs --verbatimModuleSyntax false --moduleResolution node10 --outDir ./dist/cjs --declaration --declarationDir ./dist/cjs && echo >./dist/cjs/package.json '{\"type\":\"commonjs\"}'", "build:esm": "tsc --outDir ./dist/esm --declaration --declarationDir ./dist/esm", - "lint": "eslint --ignore-path .eslintignore --max-warnings=0 --ext .ts .", - "format": "prettier --ignore-path .eslintignore --write \"**/*.+(js|ts|json)\"", - "format-check": "prettier --ignore-path .eslintignore --check \"**/*.+(js|ts|json)\"", + "lint": "eslint --max-warnings=0 .", + "format": "prettier --ignore-path ../../.prettierignore --write \"**/*.+(js|ts|json)\"", + "format-check": "prettier --ignore-path ../../.prettierignore --check \"**/*.+(js|ts|json)\"", "attw": "attw --pack", "verify": "npm run format-check && npm run lint && npm run build && npm run attw && npm run api:extract", "release": "release-it" diff --git a/packages/restate-sdk/.eslintignore b/packages/restate-sdk/.eslintignore deleted file mode 100644 index bc70c0df..00000000 --- a/packages/restate-sdk/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -dist -src/generated diff --git a/packages/restate-sdk/package.json b/packages/restate-sdk/package.json index cdb4043f..1e53cbbf 100644 --- a/packages/restate-sdk/package.json +++ b/packages/restate-sdk/package.json @@ -85,9 +85,9 @@ "build:esm": "tsc --outDir ./dist/esm --declaration --declarationDir ./dist/esm", "pretest": "npm run gen:version", "test": "vitest run --silent", - "lint": "eslint --ignore-path .eslintignore --max-warnings=0 --ext .ts .", - "format": "prettier --ignore-path .eslintignore --write \"**/*.+(js|ts|json)\"", - "format-check": "prettier --ignore-path .eslintignore --check \"**/*.+(js|ts|json)\"", + "lint": "eslint --max-warnings=0 .", + "format": "prettier --ignore-path ../../.prettierignore --write \"**/*.+(js|ts|json)\"", + "format-check": "prettier --ignore-path ../../.prettierignore --check \"**/*.+(js|ts|json)\"", "attw": "attw --pack", "verify": "npm run format-check && npm run gen:version && npm run lint && npm run test && npm run build && npm run attw && npm run api:extract", "release": "release-it" diff --git a/packages/restate-sdk/src/context_impl.ts b/packages/restate-sdk/src/context_impl.ts index b5a3779e..50a6eb99 100644 --- a/packages/restate-sdk/src/context_impl.ts +++ b/packages/restate-sdk/src/context_impl.ts @@ -817,28 +817,19 @@ class DurablePromiseImpl implements DurablePromise { } then( - onfulfilled?: - | ((value: T) => TResult1 | PromiseLike) - | null - | undefined, - onrejected?: - | ((reason: any) => TResult2 | PromiseLike) - | null - | undefined + onfulfilled?: ((value: T) => TResult1 | PromiseLike) | null, + onrejected?: ((reason: any) => TResult2 | PromiseLike) | null ): Promise { return this.get().then(onfulfilled, onrejected); } catch( - onrejected?: - | ((reason: any) => TResult | PromiseLike) - | null - | undefined + onrejected?: ((reason: any) => TResult | PromiseLike) | null ): Promise { return this.get().catch(onrejected); } - finally(onfinally?: (() => void) | null | undefined): Promise { + finally(onfinally?: (() => void) | null): Promise { return this.get().finally(onfinally); } @@ -865,7 +856,7 @@ class DurablePromiseImpl implements DurablePromise { ); } - resolve(value?: T | undefined): Promise { + resolve(value?: T): Promise { return this.ctx.processCompletableEntry( WasmCommandType.CompletePromise, () => this.ctx.journalValueCodec.encode(this.serde.serialize(value as T)), @@ -959,6 +950,7 @@ function completeCommandPromiseUsing( } } } catch (e) { + // eslint-disable-next-line @typescript-eslint/only-throw-error throw new AsyncCompleterError(e, commandType, commandIndex); } diff --git a/packages/restate-sdk/src/endpoint/components.ts b/packages/restate-sdk/src/endpoint/components.ts index 9607e5e3..571ee29f 100644 --- a/packages/restate-sdk/src/endpoint/components.ts +++ b/packages/restate-sdk/src/endpoint/components.ts @@ -9,7 +9,6 @@ * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE */ -/* eslint-disable @typescript-eslint/ban-types */ /* eslint-disable @typescript-eslint/no-explicit-any */ import type * as d from "./discovery.js"; @@ -341,8 +340,8 @@ export function parseUrlComponents(urlPath?: string): PathComponents { if (fragments.length >= 3 && fragments[fragments.length - 3] === "invoke") { return { type: "invoke", - componentName: fragments[fragments.length - 2], - handlerName: fragments[fragments.length - 1], + componentName: fragments[fragments.length - 2]!, + handlerName: fragments[fragments.length - 1]!, }; } if (fragments.length > 0 && fragments[fragments.length - 1] === "discover") { diff --git a/packages/restate-sdk/src/endpoint/discovery.ts b/packages/restate-sdk/src/endpoint/discovery.ts index e7e6bf97..8c5a9945 100644 --- a/packages/restate-sdk/src/endpoint/discovery.ts +++ b/packages/restate-sdk/src/endpoint/discovery.ts @@ -1,4 +1,3 @@ -/* eslint-disable */ /** * This file was automatically generated by json-schema-to-typescript. * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, diff --git a/packages/restate-sdk/src/endpoint/endpoint.ts b/packages/restate-sdk/src/endpoint/endpoint.ts index a5f31c4d..54fb4f09 100644 --- a/packages/restate-sdk/src/endpoint/endpoint.ts +++ b/packages/restate-sdk/src/endpoint/endpoint.ts @@ -9,7 +9,6 @@ * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE */ -/* eslint-disable @typescript-eslint/ban-types */ /* eslint-disable @typescript-eslint/no-explicit-any */ import type { diff --git a/packages/restate-sdk/src/endpoint/handlers/generic.ts b/packages/restate-sdk/src/endpoint/handlers/generic.ts index bc7b54bd..fe1ed964 100644 --- a/packages/restate-sdk/src/endpoint/handlers/generic.ts +++ b/packages/restate-sdk/src/endpoint/handlers/generic.ts @@ -109,7 +109,7 @@ export function tryCreateContextualLogger( additionalContext ) ); - } catch (e) { + } catch { return undefined; } } @@ -268,7 +268,7 @@ export class GenericHandler implements RestateHandler { .filter(([, v]) => v !== undefined) .map( ([k, v]) => - new vm.WasmHeader(k, v instanceof Array ? v[0] : (v as string)) + new vm.WasmHeader(k, v instanceof Array ? v[0]! : (v as string)) ); try { @@ -306,7 +306,7 @@ export class GenericHandler implements RestateHandler { .filter(([, v]) => v !== undefined) .map( ([k, v]) => - new vm.WasmHeader(k, v instanceof Array ? v[0] : (v as string)) + new vm.WasmHeader(k, v instanceof Array ? v[0]! : (v as string)) ); const coreVm = new vm.WasmVM( vmHeaders, diff --git a/packages/restate-sdk/src/endpoint/node_endpoint.ts b/packages/restate-sdk/src/endpoint/node_endpoint.ts index 1b45e5b4..b6b9d7c8 100644 --- a/packages/restate-sdk/src/endpoint/node_endpoint.ts +++ b/packages/restate-sdk/src/endpoint/node_endpoint.ts @@ -9,9 +9,6 @@ * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE */ -/* eslint-disable @typescript-eslint/ban-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - import type { RestateEndpoint } from "../public_api.js"; import type { JournalValueCodec, @@ -88,7 +85,7 @@ export class NodeEndpoint implements RestateEndpoint { return new Promise((resolve, reject) => { let failed = false; - server.once("error", (e) => { + server.once("error", (e: Error) => { failed = true; reject(e); }); diff --git a/packages/restate-sdk/src/logging/console_logger_transport.ts b/packages/restate-sdk/src/logging/console_logger_transport.ts index 093b8608..a6f3669e 100644 --- a/packages/restate-sdk/src/logging/console_logger_transport.ts +++ b/packages/restate-sdk/src/logging/console_logger_transport.ts @@ -10,8 +10,8 @@ */ /* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable no-console */ /* eslint-disable @typescript-eslint/no-unsafe-argument */ +/* eslint-disable no-console */ import type { LogMetadata, diff --git a/packages/restate-sdk/src/promises.ts b/packages/restate-sdk/src/promises.ts index b61c91e6..97e3b0c0 100644 --- a/packages/restate-sdk/src/promises.ts +++ b/packages/restate-sdk/src/promises.ts @@ -31,7 +31,6 @@ import type { Duration } from "@restatedev/restate-sdk-core"; // A promise that is never completed export function pendingPromise(): Promise { - // eslint-disable-next-line @typescript-eslint/no-empty-function return new Promise(() => {}); } @@ -62,7 +61,6 @@ export type AsyncResultValue = | { StateKeys: string[] } | { InvocationId: string }; -// eslint-disable-next-line @typescript-eslint/no-explicit-any export function extractContext(n: any): ContextImpl | undefined { // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access return n[RESTATE_CTX_SYMBOL] as ContextImpl | undefined; @@ -80,14 +78,8 @@ abstract class AbstractRestatePromise implements InternalRestatePromise { // --- Promise methods then( - onfulfilled?: - | ((value: T) => TResult1 | PromiseLike) - | null - | undefined, - onrejected?: - | ((reason: any) => TResult2 | PromiseLike) - | null - | undefined + onfulfilled?: ((value: T) => TResult1 | PromiseLike) | null, + onrejected?: ((reason: any) => TResult2 | PromiseLike) | null ): Promise { this.pollingPromise = this.pollingPromise || @@ -98,10 +90,7 @@ abstract class AbstractRestatePromise implements InternalRestatePromise { } catch( - onrejected?: - | ((reason: any) => TResult | PromiseLike) - | null - | undefined + onrejected?: ((reason: any) => TResult | PromiseLike) | null ): Promise { this.pollingPromise = this.pollingPromise || @@ -111,7 +100,7 @@ abstract class AbstractRestatePromise implements InternalRestatePromise { return this.publicPromiseOrCancelPromise().catch(onrejected); } - finally(onfinally?: (() => void) | null | undefined): Promise { + finally(onfinally?: (() => void) | null): Promise { this.pollingPromise = this.pollingPromise || this[RESTATE_CTX_SYMBOL].promisesExecutor @@ -134,8 +123,8 @@ abstract class AbstractRestatePromise implements InternalRestatePromise { this[RESTATE_CTX_SYMBOL], ([thisPromise, sleepPromise]) => { return new Promise((resolve, reject) => { - thisPromise.then(resolve, reject); - sleepPromise.then(() => { + thisPromise!.then(resolve, reject); + sleepPromise!.then(() => { reject(new TimeoutError()); }, reject); }); @@ -269,28 +258,19 @@ export class RestatePendingPromise implements InternalRestatePromise { // --- Promise methods then( - onfulfilled?: - | ((value: T) => TResult1 | PromiseLike) - | null - | undefined, - onrejected?: - | ((reason: any) => TResult2 | PromiseLike) - | null - | undefined + onfulfilled?: ((value: T) => TResult1 | PromiseLike) | null, + onrejected?: ((reason: any) => TResult2 | PromiseLike) | null ): Promise { return pendingPromise().then(onfulfilled, onrejected); } catch( - onrejected?: - | ((reason: any) => TResult | PromiseLike) - | null - | undefined + onrejected?: ((reason: any) => TResult | PromiseLike) | null ): Promise { return pendingPromise().catch(onrejected); } - finally(onfinally?: (() => void) | null | undefined): Promise { + finally(onfinally?: (() => void) | null): Promise { return pendingPromise().finally(onfinally); } diff --git a/packages/restate-sdk/src/types/errors.ts b/packages/restate-sdk/src/types/errors.ts index 466e7bef..f5a131e0 100644 --- a/packages/restate-sdk/src/types/errors.ts +++ b/packages/restate-sdk/src/types/errors.ts @@ -49,7 +49,7 @@ export function ensureError( let msg; try { msg = JSON.stringify(e); - } catch (x) { + } catch { msg = "(no JSON representation)"; } @@ -77,7 +77,7 @@ export function logError(log: Console, e: unknown) { export class RestateError extends Error { public readonly code: number; - public name = "RestateError"; + public override name = "RestateError"; constructor(message: string, options?: { errorCode?: number; cause?: any }) { super(message, { cause: options?.cause }); @@ -91,7 +91,7 @@ export class RestateError extends Error { * Leads to an output message with a failure defined. */ export class TerminalError extends RestateError { - public name = "TerminalError"; + public override name = "TerminalError"; constructor( message: string, @@ -114,7 +114,7 @@ export class TerminalError extends RestateError { * Returned by `RestatePromise.withTimeout` when the timeout is reached. */ export class TimeoutError extends TerminalError { - public name = "TimeoutError"; + public override name = "TimeoutError"; constructor() { super("Timeout occurred", { errorCode: TIMEOUT_ERROR_CODE }); @@ -125,7 +125,7 @@ export class TimeoutError extends TerminalError { * Returned when the invocation was cancelled. */ export class CancelledError extends TerminalError { - public name = "CancelledError"; + public override name = "CancelledError"; constructor() { super("Cancelled", { errorCode: CANCEL_ERROR_CODE }); @@ -146,7 +146,7 @@ export interface RetryableErrorOptions { * You can wrap another error using {@link from}. */ export class RetryableError extends RestateError { - public name = "RetryableError"; + public override name = "RetryableError"; readonly retryAfter?: Duration | number; diff --git a/packages/restate-sdk/src/types/rpc.ts b/packages/restate-sdk/src/types/rpc.ts index 3732f6dc..a37c7b69 100644 --- a/packages/restate-sdk/src/types/rpc.ts +++ b/packages/restate-sdk/src/types/rpc.ts @@ -10,8 +10,10 @@ */ /* eslint-disable @typescript-eslint/no-explicit-any */ +/* eslint-disable @typescript-eslint/no-unsafe-function-type */ +/* eslint-disable @typescript-eslint/no-unsafe-call */ /* eslint-disable @typescript-eslint/no-namespace */ -/* eslint-disable @typescript-eslint/ban-types */ + import type { Context, GenericCall, @@ -145,10 +147,8 @@ function optsFromArgs(args: unknown[]): { case 2: { parameter = args[0]; if (args[1] instanceof Opts) { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment opts = args[1].getOpts(); } else if (args[1] instanceof SendOpts) { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment opts = args[1].getOpts(); } else { throw new TypeError( @@ -461,6 +461,7 @@ export class HandlerWrapper { errorCode: 400, }); } + const res: unknown = await this.handler(context, req); return (this.outputSerde ?? context.defaultSerde).serialize(res); } diff --git a/packages/restate-sdk/src/utils/rand.ts b/packages/restate-sdk/src/utils/rand.ts index d8e03e04..0cdf4532 100644 --- a/packages/restate-sdk/src/utils/rand.ts +++ b/packages/restate-sdk/src/utils/rand.ts @@ -90,8 +90,8 @@ export class RandImpl implements Rand { buf.writeBigUInt64LE(this.u64(), 0); buf.writeBigUInt64LE(this.u64(), 8); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` - buf[6] = (buf[6] & 0x0f) | 0x40; - buf[8] = (buf[8] & 0x3f) | 0x80; + buf[6] = (buf[6]! & 0x0f) | 0x40; + buf[8] = (buf[8]! & 0x3f) | 0x80; return uuidStringify(buf); } } @@ -113,25 +113,25 @@ function uuidStringify(arr: Buffer, offset = 0) { // Note to future-self: No, you can't remove the `toLowerCase()` call. // REF: https://github.com/uuidjs/uuid/pull/677#issuecomment-1757351351 return ( - byteToHex[arr[offset + 0]] + - byteToHex[arr[offset + 1]] + - byteToHex[arr[offset + 2]] + - byteToHex[arr[offset + 3]] + + byteToHex[arr[offset + 0]!]! + + byteToHex[arr[offset + 1]!]! + + byteToHex[arr[offset + 2]!]! + + byteToHex[arr[offset + 3]!]! + "-" + - byteToHex[arr[offset + 4]] + - byteToHex[arr[offset + 5]] + + byteToHex[arr[offset + 4]!]! + + byteToHex[arr[offset + 5]!]! + "-" + - byteToHex[arr[offset + 6]] + - byteToHex[arr[offset + 7]] + + byteToHex[arr[offset + 6]!]! + + byteToHex[arr[offset + 7]!]! + "-" + - byteToHex[arr[offset + 8]] + - byteToHex[arr[offset + 9]] + + byteToHex[arr[offset + 8]!]! + + byteToHex[arr[offset + 9]!]! + "-" + - byteToHex[arr[offset + 10]] + - byteToHex[arr[offset + 11]] + - byteToHex[arr[offset + 12]] + - byteToHex[arr[offset + 13]] + - byteToHex[arr[offset + 14]] + - byteToHex[arr[offset + 15]] + byteToHex[arr[offset + 10]!]! + + byteToHex[arr[offset + 11]!]! + + byteToHex[arr[offset + 12]!]! + + byteToHex[arr[offset + 13]!]! + + byteToHex[arr[offset + 14]!]! + + byteToHex[arr[offset + 15]!]! ).toLowerCase(); } diff --git a/tsconfig.base.json b/tsconfig.base.json index f400f261..969f18e6 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -2,8 +2,9 @@ "compilerOptions": { "composite": true, "baseUrl": ".", - "target": "esnext", - "module": "nodenext", + "target": "ES2022", + "module": "NodeNext", + "moduleResolution": "NodeNext", "lib": ["esnext"], "declaration": true, "declarationMap": true, @@ -15,6 +16,11 @@ "forceConsistentCasingInFileNames": true, "allowSyntheticDefaultImports": true, "noImplicitThis": true, + "resolveJsonModule": true, + "moduleDetection": "force", + "isolatedModules": true, + "noUncheckedIndexedAccess": true, + "noImplicitOverride": true, "paths": { "@restatedev/restate-sdk-core": [ "./packages/restate-sdk-core/src/public_api.ts" @@ -23,7 +29,9 @@ "@restatedev/restate-sdk-clients": [ "./packages/restate-sdk-clients/src/public_api.ts" ], - "@restatedev/restate-sdk-zod": ["./packages/restate-sdk-zod/src/public_api.ts"] + "@restatedev/restate-sdk-zod": [ + "./packages/restate-sdk-zod/src/public_api.ts" + ] } } }