diff --git a/.changeset/hot-lions-scream.md b/.changeset/hot-lions-scream.md new file mode 100644 index 0000000..7ee20ea --- /dev/null +++ b/.changeset/hot-lions-scream.md @@ -0,0 +1,5 @@ +--- +"@driimus/aws-event-factory": patch +--- + +feat(deps): require faker v9 diff --git a/.changeset/strong-pans-lie.md b/.changeset/strong-pans-lie.md new file mode 100644 index 0000000..4ced79e --- /dev/null +++ b/.changeset/strong-pans-lie.md @@ -0,0 +1,5 @@ +--- +"@driimus/lambda-batch-processor": patch +--- + +docs: reference alternative implementations diff --git a/eslint.config.js b/eslint.config.js index 4558dbb..80d7ced 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -48,30 +48,24 @@ export default tsEslint.config( rules: { 'prefer-const': ['error', { destructuring: 'all' }], 'unicorn/filename-case': ['warn', { case: 'camelCase' }], - 'unicorn/prevent-abbreviations': 'warn', 'unicorn/no-null': 'off', 'unicorn/no-useless-switch-case': 'error', + 'unicorn/prevent-abbreviations': 'warn', + '@typescript-eslint/consistent-type-imports': 'error', '@typescript-eslint/member-ordering': 'warn', '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/no-use-before-define': 'off', - '@typescript-eslint/no-non-null-asserted-nullish-coalescing': 'error', - '@typescript-eslint/no-non-null-assertion': 'warn', - '@typescript-eslint/no-unsafe-return': 'warn', - '@typescript-eslint/no-unsafe-call': 'error', - '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/ban-ts-comment': 'off', - '@typescript-eslint/ban-types': 'off', - '@typescript-eslint/no-empty-function': 'off', '@typescript-eslint/no-misused-promises': [ 'error', { checksConditionals: true, }, ], + '@typescript-eslint/no-non-null-asserted-nullish-coalescing': 'error', + '@typescript-eslint/no-non-null-assertion': 'warn', '@typescript-eslint/no-unnecessary-type-assertion': 'warn', + '@typescript-eslint/no-unsafe-return': 'warn', + '@typescript-eslint/no-unsafe-call': 'error', '@typescript-eslint/require-await': 'warn', - '@typescript-eslint/no-empty-interface': 'off', - '@typescript-eslint/consistent-type-imports': 'error', }, }, { @@ -84,9 +78,7 @@ export default tsEslint.config( '@typescript-eslint/no-unsafe-assignment': 'off', }, languageOptions: { - globals: { - ...vitest.environments.env.globals, - }, + globals: vitest.environments.env.globals, }, }, { @@ -96,6 +88,7 @@ export default tsEslint.config( turbo, }, rules: { + ...tsEslint.configs.disableTypeChecked, 'turbo/no-undeclared-env-vars': 'error', }, }, diff --git a/package.json b/package.json index 69a5bb5..35e36cd 100644 --- a/package.json +++ b/package.json @@ -24,13 +24,13 @@ "@tsconfig/strictest": "^2.0.5", "@types/aws-lambda": "^8.10.131", "@types/node": "^20.16.5", - "@typescript-eslint/eslint-plugin": "^8.5.0", - "@typescript-eslint/parser": "^8.5.0", + "@typescript-eslint/eslint-plugin": "^8.7.0", + "@typescript-eslint/parser": "^8.7.0", "@vitest/coverage-v8": "^2.0.0", "@vitest/eslint-plugin": "^1.1.4", - "eslint": "^9.10.0", + "eslint": "^9.11.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-import-x": "^4.2.1", + "eslint-plugin-import-x": "^4.3.0", "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-simple-import-sort": "^12.1.1", "eslint-plugin-turbo": "^2.1.2", @@ -39,7 +39,7 @@ "prettier": "^3.2.4", "turbo": "^2.0.1", "typescript": "^5.3.3", - "typescript-eslint": "^8.5.0", + "typescript-eslint": "^8.7.0", "vitest": "^2.0.0" }, "packageManager": "pnpm@9.1.4", diff --git a/packages/lambda-batch-processor/README.md b/packages/lambda-batch-processor/README.md index 0ad1edc..bd07df6 100644 --- a/packages/lambda-batch-processor/README.md +++ b/packages/lambda-batch-processor/README.md @@ -19,7 +19,6 @@ For types to work as expected, `@types/aws-lambda` must be installed: ```sh pnpm add --save-dev @types/aws-lambda - ``` ## Usage @@ -70,37 +69,13 @@ To send SQS messages to a dead-letter queue, you can use [`@driimus/sqs-permanen ### Logging -You can enable logging by providing a logger compatible with the `Logger` interface, +Logging can be enabled by providing a logger compatible with the `Logger` interface, which is modelled after [pino](https://github.com/pinojs/pino)'s function signatures. > [!NOTE] > The provided logger should support serialising [AggregateError](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AggregateError) objects. -If using pino, it might be worth adding [pino-lambda](https://github.com/formidablelabs/pino-lambda), -to preserve Lambda's standard log message format. - -```ts -import { SQSBatchProcessor } from '@driimus/lambda-batch-processor'; -import pino from 'pino'; -import { lambdaRequestTracker, pinoLambdaDestination } from 'pino-lambda'; - -const destination = pinoLambdaDestination(); -const withRequest = lambdaRequestTracker(); +## Alternatives -const logger = pino({}, destination); - -const processor = new SQSBatchProcessor( - async (record) => { - /** do stuff */ - }, - { - logger, - }, -); - -export const handler = async (event, context) => { - withRequest(event, context); - - return await processor.process(event, context); -}; -``` +Don't need special handling for [non-retryable errors](#non-retryable-errors)? +Make sure to check out the implementation in [AWS Lambda Powertools for Typescript](https://github.com/aws-powertools/powertools-lambda-typescript/tree/main/packages/batch#readme), which has added ESM support in v2. diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 64c7a06..6f43812 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -30,38 +30,38 @@ importers: specifier: ^20.16.5 version: 20.16.5 '@typescript-eslint/eslint-plugin': - specifier: ^8.5.0 - version: 8.5.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0)(typescript@5.3.3))(eslint@9.10.0)(typescript@5.3.3) + specifier: ^8.7.0 + version: 8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.0)(typescript@5.3.3))(eslint@9.11.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: ^8.5.0 - version: 8.5.0(eslint@9.10.0)(typescript@5.3.3) + specifier: ^8.7.0 + version: 8.7.0(eslint@9.11.0)(typescript@5.3.3) '@vitest/coverage-v8': specifier: ^2.0.0 version: 2.0.1(vitest@2.0.1(@types/node@20.16.5)) '@vitest/eslint-plugin': specifier: ^1.1.4 - version: 1.1.4(@typescript-eslint/utils@8.5.0(eslint@9.10.0)(typescript@5.3.3))(eslint@9.10.0)(typescript@5.3.3)(vitest@2.0.1(@types/node@20.16.5)) + version: 1.1.4(@typescript-eslint/utils@8.7.0(eslint@9.11.0)(typescript@5.3.3))(eslint@9.11.0)(typescript@5.3.3)(vitest@2.0.1(@types/node@20.16.5)) eslint: - specifier: ^9.10.0 - version: 9.10.0 + specifier: ^9.11.0 + version: 9.11.0 eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@9.10.0) + version: 9.1.0(eslint@9.11.0) eslint-plugin-import-x: - specifier: ^4.2.1 - version: 4.2.1(eslint@9.10.0)(typescript@5.3.3) + specifier: ^4.3.0 + version: 4.3.0(eslint@9.11.0)(typescript@5.3.3) eslint-plugin-prettier: specifier: ^5.2.1 - version: 5.2.1(eslint-config-prettier@9.1.0(eslint@9.10.0))(eslint@9.10.0)(prettier@3.2.4) + version: 5.2.1(eslint-config-prettier@9.1.0(eslint@9.11.0))(eslint@9.11.0)(prettier@3.2.4) eslint-plugin-simple-import-sort: specifier: ^12.1.1 - version: 12.1.1(eslint@9.10.0) + version: 12.1.1(eslint@9.11.0) eslint-plugin-turbo: specifier: ^2.1.2 - version: 2.1.2(eslint@9.10.0) + version: 2.1.2(eslint@9.11.0) eslint-plugin-unicorn: specifier: ^55.0.0 - version: 55.0.0(eslint@9.10.0) + version: 55.0.0(eslint@9.11.0) fishery: specifier: ^2.2.2 version: 2.2.2 @@ -75,8 +75,8 @@ importers: specifier: ^5.3.3 version: 5.3.3 typescript-eslint: - specifier: ^8.5.0 - version: 8.5.0(eslint@9.10.0)(typescript@5.3.3) + specifier: ^8.7.0 + version: 8.7.0(eslint@9.11.0)(typescript@5.3.3) vitest: specifier: ^2.0.0 version: 2.0.1(@types/node@20.16.5) @@ -614,10 +614,6 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.11.0': - resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint-community/regexpp@4.11.1': resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -630,16 +626,16 @@ packages: resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.10.0': - resolution: {integrity: sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==} + '@eslint/js@9.11.0': + resolution: {integrity: sha512-LPkkenkDqyzTFauZLLAPhIb48fj6drrfMvRGSL9tS3AcZBSVTllemLSNyCvHNNL2t797S/6DJNSIwRwXgMO/eQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.4': resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.1.0': - resolution: {integrity: sha512-autAXT203ixhqei9xt+qkYOvY8l6LAFIdT2UXc/RPNeUVfqRF1BV94GTJyVPFKT8nFM6MyVJhjLj9E8JWvf5zQ==} + '@eslint/plugin-kit@0.2.0': + resolution: {integrity: sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@faker-js/faker@9.0.1': @@ -856,9 +852,6 @@ packages: '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - '@types/node@18.19.33': - resolution: {integrity: sha512-NR9+KrpSajr2qBVp/Yt5TU/rp+b5Mayi3+OlMlcg2cVCfRmcG5PWZ7S4+MG9PZ5gWBoc9Pd0BKSRViuBCRPu0A==} - '@types/node@20.16.5': resolution: {integrity: sha512-VwYCweNo3ERajwy0IUlqqcyZ8/A7Zwa9ZP3MnENWcB11AejO+tLy3pu850goUW2FC/IJMdZUfKpX/yxL1gymCA==} @@ -883,8 +876,8 @@ packages: '@types/yargs@17.0.17': resolution: {integrity: sha512-72bWxFKTK6uwWJAVT+3rF6Jo6RTojiJ27FQo8Rf60AL+VZbzoVPnMFhKsUnbjR8A3BTCYQ7Mv3hnl8T0A+CX9g==} - '@typescript-eslint/eslint-plugin@8.5.0': - resolution: {integrity: sha512-lHS5hvz33iUFQKuPFGheAB84LwcJ60G8vKnEhnfcK1l8kGVLro2SFYW6K0/tj8FUhRJ0VHyg1oAfg50QGbPPHw==} + '@typescript-eslint/eslint-plugin@8.7.0': + resolution: {integrity: sha512-RIHOoznhA3CCfSTFiB6kBGLQtB/sox+pJ6jeFu6FxJvqL8qRxq/FfGO/UhsGgQM9oGdXkV4xUgli+dt26biB6A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -894,8 +887,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.5.0': - resolution: {integrity: sha512-gF77eNv0Xz2UJg/NbpWJ0kqAm35UMsvZf1GHj8D9MRFTj/V3tAciIWXfmPLsAAF/vUlpWPvUDyH1jjsr0cMVWw==} + '@typescript-eslint/parser@8.7.0': + resolution: {integrity: sha512-lN0btVpj2unxHlNYLI//BQ7nzbMJYBVQX5+pbNXvGYazdlgYonMn4AhhHifQ+J4fGRYA/m1DjaQjx+fDetqBOQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -904,12 +897,16 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@8.5.0': - resolution: {integrity: sha512-06JOQ9Qgj33yvBEx6tpC8ecP9o860rsR22hWMEd12WcTRrfaFgHr2RB/CA/B+7BMhHkXT4chg2MyboGdFGawYg==} + '@typescript-eslint/scope-manager@8.6.0': + resolution: {integrity: sha512-ZuoutoS5y9UOxKvpc/GkvF4cuEmpokda4wRg64JEia27wX+PysIE9q+lzDtlHHgblwUWwo5/Qn+/WyTUvDwBHw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.5.0': - resolution: {integrity: sha512-N1K8Ix+lUM+cIDhL2uekVn/ZD7TZW+9/rwz8DclQpcQ9rk4sIL5CAlBC0CugWKREmDjBzI/kQqU4wkg46jWLYA==} + '@typescript-eslint/scope-manager@8.7.0': + resolution: {integrity: sha512-87rC0k3ZlDOuz82zzXRtQ7Akv3GKhHs0ti4YcbAJtaomllXoSO8hi7Ix3ccEvCd824dy9aIX+j3d2UMAfCtVpg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@8.7.0': + resolution: {integrity: sha512-tl0N0Mj3hMSkEYhLkjREp54OSb/FI6qyCzfiiclvJvOqre6hsZTGSnHtmFLDU8TIM62G7ygEa1bI08lcuRwEnQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -917,12 +914,25 @@ packages: typescript: optional: true - '@typescript-eslint/types@8.5.0': - resolution: {integrity: sha512-qjkormnQS5wF9pjSi6q60bKUHH44j2APxfh9TQRXK8wbYVeDYYdYJGIROL87LGZZ2gz3Rbmjc736qyL8deVtdw==} + '@typescript-eslint/types@8.6.0': + resolution: {integrity: sha512-rojqFZGd4MQxw33SrOy09qIDS8WEldM8JWtKQLAjf/X5mGSeEFh5ixQlxssMNyPslVIk9yzWqXCsV2eFhYrYUw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/types@8.7.0': + resolution: {integrity: sha512-LLt4BLHFwSfASHSF2K29SZ+ZCsbQOM+LuarPjRUuHm+Qd09hSe3GCeaQbcCr+Mik+0QFRmep/FyZBO6fJ64U3w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.5.0': - resolution: {integrity: sha512-vEG2Sf9P8BPQ+d0pxdfndw3xIXaoSjliG0/Ejk7UggByZPKXmJmw3GW5jV2gHNQNawBUyfahoSiCFVov0Ruf7Q==} + '@typescript-eslint/typescript-estree@8.6.0': + resolution: {integrity: sha512-MOVAzsKJIPIlLK239l5s06YXjNqpKTVhBVDnqUumQJja5+Y94V3+4VUFRA0G60y2jNnTVwRCkhyGQpavfsbq/g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/typescript-estree@8.7.0': + resolution: {integrity: sha512-MC8nmcGHsmfAKxwnluTQpNqceniT8SteVwd2voYlmiSWGOtjvGXdPl17dYu2797GVscK30Z04WRM28CrKS9WOg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -930,14 +940,24 @@ packages: typescript: optional: true - '@typescript-eslint/utils@8.5.0': - resolution: {integrity: sha512-6yyGYVL0e+VzGYp60wvkBHiqDWOpT63pdMV2CVG4LVDd5uR6q1qQN/7LafBZtAtNIn/mqXjsSeS5ggv/P0iECw==} + '@typescript-eslint/utils@8.6.0': + resolution: {integrity: sha512-eNp9cWnYf36NaOVjkEUznf6fEgVy1TWpE0o52e4wtojjBx7D1UV2WAWGzR+8Y5lVFtpMLPwNbC67T83DWSph4A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/visitor-keys@8.5.0': - resolution: {integrity: sha512-yTPqMnbAZJNy2Xq2XU8AdtOW9tJIr+UQb64aXB9f3B1498Zx9JorVgFJcZpEc9UBuCCrdzKID2RGAMkYcDtZOw==} + '@typescript-eslint/utils@8.7.0': + resolution: {integrity: sha512-ZbdUdwsl2X/s3CiyAu3gOlfQzpbuG3nTWKPoIvAu1pu5r8viiJvv2NPN2AqArL35NCYtw/lrPPfM4gxrMLNLPw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + + '@typescript-eslint/visitor-keys@8.6.0': + resolution: {integrity: sha512-wapVFfZg9H0qOYh4grNVQiMklJGluQrOUiOhYRrQWhx7BY/+I1IYb8BczWNbbUpO+pqy0rDciv3lQH5E1bCLrg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/visitor-keys@8.7.0': + resolution: {integrity: sha512-b1tx0orFCCh/THWPQa2ZwWzvOeyzzp36vkJYOpVg0u8UVOIsfVrnuC9FqAw9gRKn+rG2VmWQ/zDJZzkxUnj/XQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@vitest/coverage-v8@2.0.1': @@ -1110,8 +1130,8 @@ packages: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} - caniuse-lite@1.0.30001660: - resolution: {integrity: sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==} + caniuse-lite@1.0.30001662: + resolution: {integrity: sha512-sgMUVwLmGseH8ZIrm1d51UbrhqMCH3jvS7gF/M6byuHOnKyLOBL7W8yz5V02OHwgLGA36o/AFhWzzh4uc5aqTA==} chai@5.1.1: resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} @@ -1287,8 +1307,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.5.23: - resolution: {integrity: sha512-mBhODedOXg4v5QWwl21DjM5amzjmI1zw9EPrPK/5Wx7C8jt33bpZNrC7OhHUG3pxRtbLpr3W2dXT+Ph1SsfRZA==} + electron-to-chromium@1.5.27: + resolution: {integrity: sha512-o37j1vZqCoEgBuWWXLHQgTN/KDKe7zwpiY5CPeq2RvUqOyJw9xnrULzZAEVQ5p4h+zjMk7hgtOoPdnLxr7m/jw==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1360,8 +1380,8 @@ packages: eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - eslint-plugin-import-x@4.2.1: - resolution: {integrity: sha512-WWi2GedccIJa0zXxx3WDnTgouGQTtdYK1nhXMwywbqqAgB0Ov+p1pYBsWh3VaB0bvBOwLse6OfVII7jZD9xo5Q==} + eslint-plugin-import-x@4.3.0: + resolution: {integrity: sha512-PxGzP7gAjF2DLeRnQtbYkkgZDg1intFyYr/XS1LgTYXUDrSXMHGkXx8++6i2eDv2jMs0jfeO6G6ykyeWxiFX7w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1408,8 +1428,8 @@ packages: resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.10.0: - resolution: {integrity: sha512-Y4D0IgtBZfOcOUAIQTSXBKoNGfY0REGqHJG6+Q81vNippW5YlKjHFj4soMxamKK1NXHUWuBZTLdU3Km+L/pcHw==} + eslint@9.11.0: + resolution: {integrity: sha512-yVS6XODx+tMFMDFcG4+Hlh+qG7RM6cCJXtQhCKLSsr3XkLvWggHjCqjfh0XsPPnt1c56oaT6PMgW9XWQQjdHXA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -1657,10 +1677,6 @@ packages: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} - ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -2559,8 +2575,8 @@ packages: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} - typescript-eslint@8.5.0: - resolution: {integrity: sha512-uD+XxEoSIvqtm4KE97etm32Tn5MfaZWgWfMMREStLxR6JzvHkc2Tkj7zhTEK5XmtpTmKHNnG8Sot6qDfhHtR1Q==} + typescript-eslint@8.7.0: + resolution: {integrity: sha512-nEHbEYJyHwsuf7c3V3RS7Saq+1+la3i0ieR3qP0yjqWSzVmh8Drp47uOl9LjbPANac4S7EFSqvcYIKXUUwIfIQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -2576,9 +2592,6 @@ packages: unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} @@ -3550,13 +3563,11 @@ snapshots: '@esbuild/win32-x64@0.20.2': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.10.0)': + '@eslint-community/eslint-utils@4.4.0(eslint@9.11.0)': dependencies: - eslint: 9.10.0 + eslint: 9.11.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.11.0': {} - '@eslint-community/regexpp@4.11.1': {} '@eslint/config-array@0.18.0': @@ -3581,11 +3592,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.10.0': {} + '@eslint/js@9.11.0': {} '@eslint/object-schema@2.1.4': {} - '@eslint/plugin-kit@0.1.0': + '@eslint/plugin-kit@0.2.0': dependencies: levn: 0.4.1 @@ -3623,7 +3634,7 @@ snapshots: '@jest/schemas': 28.1.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.19.33 + '@types/node': 20.16.5 '@types/yargs': 17.0.17 chalk: 4.1.2 @@ -3780,10 +3791,6 @@ snapshots: '@types/node@12.20.55': {} - '@types/node@18.19.33': - dependencies: - undici-types: 5.26.5 - '@types/node@20.16.5': dependencies: undici-types: 6.19.8 @@ -3806,17 +3813,17 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.0 - '@typescript-eslint/eslint-plugin@8.5.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0)(typescript@5.3.3))(eslint@9.10.0)(typescript@5.3.3)': + '@typescript-eslint/eslint-plugin@8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.0)(typescript@5.3.3))(eslint@9.11.0)(typescript@5.3.3)': dependencies: - '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.5.0(eslint@9.10.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 8.5.0 - '@typescript-eslint/type-utils': 8.5.0(eslint@9.10.0)(typescript@5.3.3) - '@typescript-eslint/utils': 8.5.0(eslint@9.10.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 8.5.0 - eslint: 9.10.0 + '@eslint-community/regexpp': 4.11.1 + '@typescript-eslint/parser': 8.7.0(eslint@9.11.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 8.7.0 + '@typescript-eslint/type-utils': 8.7.0(eslint@9.11.0)(typescript@5.3.3) + '@typescript-eslint/utils': 8.7.0(eslint@9.11.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 8.7.0 + eslint: 9.11.0 graphemer: 1.4.0 - ignore: 5.3.1 + ignore: 5.3.2 natural-compare: 1.4.0 ts-api-utils: 1.3.0(typescript@5.3.3) optionalDependencies: @@ -3824,28 +3831,33 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.5.0(eslint@9.10.0)(typescript@5.3.3)': + '@typescript-eslint/parser@8.7.0(eslint@9.11.0)(typescript@5.3.3)': dependencies: - '@typescript-eslint/scope-manager': 8.5.0 - '@typescript-eslint/types': 8.5.0 - '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 8.5.0 + '@typescript-eslint/scope-manager': 8.7.0 + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 8.7.0 debug: 4.3.7 - eslint: 9.10.0 + eslint: 9.11.0 optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.5.0': + '@typescript-eslint/scope-manager@8.6.0': + dependencies: + '@typescript-eslint/types': 8.6.0 + '@typescript-eslint/visitor-keys': 8.6.0 + + '@typescript-eslint/scope-manager@8.7.0': dependencies: - '@typescript-eslint/types': 8.5.0 - '@typescript-eslint/visitor-keys': 8.5.0 + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/visitor-keys': 8.7.0 - '@typescript-eslint/type-utils@8.5.0(eslint@9.10.0)(typescript@5.3.3)': + '@typescript-eslint/type-utils@8.7.0(eslint@9.11.0)(typescript@5.3.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.3.3) - '@typescript-eslint/utils': 8.5.0(eslint@9.10.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.3.3) + '@typescript-eslint/utils': 8.7.0(eslint@9.11.0)(typescript@5.3.3) debug: 4.3.7 ts-api-utils: 1.3.0(typescript@5.3.3) optionalDependencies: @@ -3854,12 +3866,29 @@ snapshots: - eslint - supports-color - '@typescript-eslint/types@8.5.0': {} + '@typescript-eslint/types@8.6.0': {} + + '@typescript-eslint/types@8.7.0': {} + + '@typescript-eslint/typescript-estree@8.6.0(typescript@5.3.3)': + dependencies: + '@typescript-eslint/types': 8.6.0 + '@typescript-eslint/visitor-keys': 8.6.0 + debug: 4.3.7 + fast-glob: 3.3.2 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.3.3) + optionalDependencies: + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color - '@typescript-eslint/typescript-estree@8.5.0(typescript@5.3.3)': + '@typescript-eslint/typescript-estree@8.7.0(typescript@5.3.3)': dependencies: - '@typescript-eslint/types': 8.5.0 - '@typescript-eslint/visitor-keys': 8.5.0 + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/visitor-keys': 8.7.0 debug: 4.3.7 fast-glob: 3.3.2 is-glob: 4.0.3 @@ -3871,20 +3900,36 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.5.0(eslint@9.10.0)(typescript@5.3.3)': + '@typescript-eslint/utils@8.6.0(eslint@9.11.0)(typescript@5.3.3)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.0) + '@typescript-eslint/scope-manager': 8.6.0 + '@typescript-eslint/types': 8.6.0 + '@typescript-eslint/typescript-estree': 8.6.0(typescript@5.3.3) + eslint: 9.11.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/utils@8.7.0(eslint@9.11.0)(typescript@5.3.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0) - '@typescript-eslint/scope-manager': 8.5.0 - '@typescript-eslint/types': 8.5.0 - '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.3.3) - eslint: 9.10.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.0) + '@typescript-eslint/scope-manager': 8.7.0 + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.3.3) + eslint: 9.11.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@8.5.0': + '@typescript-eslint/visitor-keys@8.6.0': dependencies: - '@typescript-eslint/types': 8.5.0 + '@typescript-eslint/types': 8.6.0 + eslint-visitor-keys: 3.4.3 + + '@typescript-eslint/visitor-keys@8.7.0': + dependencies: + '@typescript-eslint/types': 8.7.0 eslint-visitor-keys: 3.4.3 '@vitest/coverage-v8@2.0.1(vitest@2.0.1(@types/node@20.16.5))': @@ -3906,11 +3951,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.1.4(@typescript-eslint/utils@8.5.0(eslint@9.10.0)(typescript@5.3.3))(eslint@9.10.0)(typescript@5.3.3)(vitest@2.0.1(@types/node@20.16.5))': + '@vitest/eslint-plugin@1.1.4(@typescript-eslint/utils@8.7.0(eslint@9.11.0)(typescript@5.3.3))(eslint@9.11.0)(typescript@5.3.3)(vitest@2.0.1(@types/node@20.16.5))': dependencies: - eslint: 9.10.0 + eslint: 9.11.0 optionalDependencies: - '@typescript-eslint/utils': 8.5.0(eslint@9.10.0)(typescript@5.3.3) + '@typescript-eslint/utils': 8.7.0(eslint@9.11.0)(typescript@5.3.3) typescript: 5.3.3 vitest: 2.0.1(@types/node@20.16.5) @@ -4051,8 +4096,8 @@ snapshots: browserslist@4.23.3: dependencies: - caniuse-lite: 1.0.30001660 - electron-to-chromium: 1.5.23 + caniuse-lite: 1.0.30001662 + electron-to-chromium: 1.5.27 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) @@ -4078,7 +4123,7 @@ snapshots: camelcase@5.3.1: {} - caniuse-lite@1.0.30001660: {} + caniuse-lite@1.0.30001662: {} chai@5.1.1: dependencies: @@ -4245,7 +4290,7 @@ snapshots: eastasianwidth@0.2.0: {} - electron-to-chromium@1.5.23: {} + electron-to-chromium@1.5.27: {} emoji-regex@8.0.0: {} @@ -4369,9 +4414,9 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-prettier@9.1.0(eslint@9.10.0): + eslint-config-prettier@9.1.0(eslint@9.11.0): dependencies: - eslint: 9.10.0 + eslint: 9.11.0 eslint-import-resolver-node@0.3.9: dependencies: @@ -4381,12 +4426,12 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-import-x@4.2.1(eslint@9.10.0)(typescript@5.3.3): + eslint-plugin-import-x@4.3.0(eslint@9.11.0)(typescript@5.3.3): dependencies: - '@typescript-eslint/utils': 8.5.0(eslint@9.10.0)(typescript@5.3.3) + '@typescript-eslint/utils': 8.6.0(eslint@9.11.0)(typescript@5.3.3) debug: 4.3.7 doctrine: 3.0.0 - eslint: 9.10.0 + eslint: 9.11.0 eslint-import-resolver-node: 0.3.9 get-tsconfig: 4.8.1 is-glob: 4.0.3 @@ -4398,32 +4443,32 @@ snapshots: - supports-color - typescript - eslint-plugin-prettier@5.2.1(eslint-config-prettier@9.1.0(eslint@9.10.0))(eslint@9.10.0)(prettier@3.2.4): + eslint-plugin-prettier@5.2.1(eslint-config-prettier@9.1.0(eslint@9.11.0))(eslint@9.11.0)(prettier@3.2.4): dependencies: - eslint: 9.10.0 + eslint: 9.11.0 prettier: 3.2.4 prettier-linter-helpers: 1.0.0 synckit: 0.9.1 optionalDependencies: - eslint-config-prettier: 9.1.0(eslint@9.10.0) + eslint-config-prettier: 9.1.0(eslint@9.11.0) - eslint-plugin-simple-import-sort@12.1.1(eslint@9.10.0): + eslint-plugin-simple-import-sort@12.1.1(eslint@9.11.0): dependencies: - eslint: 9.10.0 + eslint: 9.11.0 - eslint-plugin-turbo@2.1.2(eslint@9.10.0): + eslint-plugin-turbo@2.1.2(eslint@9.11.0): dependencies: dotenv: 16.0.3 - eslint: 9.10.0 + eslint: 9.11.0 - eslint-plugin-unicorn@55.0.0(eslint@9.10.0): + eslint-plugin-unicorn@55.0.0(eslint@9.11.0): dependencies: '@babel/helper-validator-identifier': 7.24.7 - '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.0) ci-info: 4.0.0 clean-regexp: 1.0.0 core-js-compat: 3.38.1 - eslint: 9.10.0 + eslint: 9.11.0 esquery: 1.6.0 globals: 15.9.0 indent-string: 4.0.0 @@ -4445,14 +4490,14 @@ snapshots: eslint-visitor-keys@4.0.0: {} - eslint@9.10.0: + eslint@9.11.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.0) '@eslint-community/regexpp': 4.11.1 '@eslint/config-array': 0.18.0 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.10.0 - '@eslint/plugin-kit': 0.1.0 + '@eslint/js': 9.11.0 + '@eslint/plugin-kit': 0.2.0 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 @@ -4683,7 +4728,7 @@ snapshots: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.3.1 + ignore: 5.3.2 merge2: 1.4.1 slash: 3.0.0 @@ -4733,8 +4778,6 @@ snapshots: dependencies: safer-buffer: 2.1.2 - ignore@5.3.1: {} - ignore@5.3.2: {} import-fresh@3.3.0: @@ -4903,7 +4946,7 @@ snapshots: jest-util@28.1.3: dependencies: '@jest/types': 28.1.3 - '@types/node': 18.19.33 + '@types/node': 20.16.5 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -5623,11 +5666,11 @@ snapshots: is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - typescript-eslint@8.5.0(eslint@9.10.0)(typescript@5.3.3): + typescript-eslint@8.7.0(eslint@9.11.0)(typescript@5.3.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.5.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0)(typescript@5.3.3))(eslint@9.10.0)(typescript@5.3.3) - '@typescript-eslint/parser': 8.5.0(eslint@9.10.0)(typescript@5.3.3) - '@typescript-eslint/utils': 8.5.0(eslint@9.10.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.0)(typescript@5.3.3))(eslint@9.11.0)(typescript@5.3.3) + '@typescript-eslint/parser': 8.7.0(eslint@9.11.0)(typescript@5.3.3) + '@typescript-eslint/utils': 8.7.0(eslint@9.11.0)(typescript@5.3.3) optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: @@ -5643,8 +5686,6 @@ snapshots: has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - undici-types@5.26.5: {} - undici-types@6.19.8: {} universalify@0.1.2: {}