diff --git a/.README/rules/convert-to-jsdoc-comments.md b/.README/rules/convert-to-jsdoc-comments.md index 4b9874a4..8847e6a6 100644 --- a/.README/rules/convert-to-jsdoc-comments.md +++ b/.README/rules/convert-to-jsdoc-comments.md @@ -2,6 +2,9 @@ Converts single line or non-JSDoc, multiline comments into JSDoc comments. +Note that this rule is experimental. As usual with fixers, please confirm +the results before committing. + ## Options ### `enableFixer` @@ -45,13 +48,33 @@ Defaults to `['@ts-', 'istanbul ', 'c8 ', 'v8 ', 'eslint', 'prettier-']`. Supplying your own value overrides the defaults. +### `contexts` + +The contexts which will be checked for preceding content. + +Defaults to `ArrowFunctionExpression`, `FunctionDeclaration`, +`FunctionExpression`, `TSDeclareFunction`. + +### `contextsAfter` + +The contexts which will be checked for content on the same line after. + +Defaults to an empty array. + +### `contextsBeforeAndAfter` + +The contexts which will be checked for content before and on the same +line after. + +Defaults to `VariableDeclarator`, `TSPropertySignature`, `PropertyDefinition`. + ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`| |Tags|(N/A)| |Recommended|false| |Settings|`minLines`, `maxLines`| -|Options|`enableFixer`, `enforceJsdocLineStyle`, `lineOrBlockStyle`| +|Options|`enableFixer`, `enforceJsdocLineStyle`, `lineOrBlockStyle`, `allowedPrefixes`, `contexts`, `contextsAfter`, `contextsBeforeAndAfter`| ## Failing examples diff --git a/.ncurc.cjs b/.ncurc.cjs index fc63f481..36ef109e 100644 --- a/.ncurc.cjs +++ b/.ncurc.cjs @@ -8,5 +8,10 @@ module.exports = { 'decamelize', 'escape-string-regexp', 'open-editor', + + // todo[engine:node@>=20]: Can reenable + 'glob', + // todo[engine:node@>=20]: Can reenable + 'rimraf' ], }; diff --git a/docs/rules/convert-to-jsdoc-comments.md b/docs/rules/convert-to-jsdoc-comments.md index 330721e4..40b8ed73 100644 --- a/docs/rules/convert-to-jsdoc-comments.md +++ b/docs/rules/convert-to-jsdoc-comments.md @@ -4,6 +4,9 @@ Converts single line or non-JSDoc, multiline comments into JSDoc comments. +Note that this rule is experimental. As usual with fixers, please confirm +the results before committing. + ## Options @@ -57,13 +60,39 @@ Defaults to `['@ts-', 'istanbul ', 'c8 ', 'v8 ', 'eslint', 'prettier-']`. Supplying your own value overrides the defaults. + + +### contexts + +The contexts which will be checked for preceding content. + +Defaults to `ArrowFunctionExpression`, `FunctionDeclaration`, +`FunctionExpression`, `TSDeclareFunction`. + + + +### contextsAfter + +The contexts which will be checked for content on the same line after. + +Defaults to an empty array. + + + +### contextsBeforeAndAfter + +The contexts which will be checked for content before and on the same +line after. + +Defaults to `VariableDeclarator`, `TSPropertySignature`, `PropertyDefinition`. + ||| |---|---| |Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`| |Tags|(N/A)| |Recommended|false| |Settings|`minLines`, `maxLines`| -|Options|`enableFixer`, `enforceJsdocLineStyle`, `lineOrBlockStyle`| +|Options|`enableFixer`, `enforceJsdocLineStyle`, `lineOrBlockStyle`, `allowedPrefixes`, `contexts`, `contextsAfter`, `contextsBeforeAndAfter`| @@ -134,6 +163,44 @@ export class User { // Settings: {"jsdoc":{"minLines":0,"maxLines":0}} // "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"enforceJsdocLineStyle":"single"}] // Message: Block comments should be JSDoc-style. + +var a = []; // Test comment +// "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"contextsBeforeAndAfter":[],"contextsAfter":["VariableDeclarator"]}] +// Message: Line comments should be JSDoc-style. + +var a = []; // Test comment +// "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"contextsBeforeAndAfter":[],"contextsAfter":[{"context":"VariableDeclarator","inlineCommentBlock":true}]}] +// Message: Line comments should be JSDoc-style. + +var a = []; // Test comment +// Settings: {"jsdoc":{"minLines":0,"maxLines":0}} +// "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"contextsBeforeAndAfter":[],"contextsAfter":[{"context":"VariableDeclarator","inlineCommentBlock":true}]}] +// Message: Line comments should be JSDoc-style. + +// Test comment +var a = []; +// "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"contextsBeforeAndAfter":["VariableDeclaration"]}] +// Message: Line comments should be JSDoc-style. + +var a = []; // Test comment +// "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"contextsBeforeAndAfter":["VariableDeclaration"]}] +// Message: Line comments should be JSDoc-style. + +interface B { + g: () => string; // Test comment +} +// "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"contextsBeforeAndAfter":["TSPropertySignature"]}] +// Message: Line comments should be JSDoc-style. + +class TestClass { + public Test: (id: number) => string; // Test comment +} +// "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"contextsBeforeAndAfter":["PropertyDefinition"]}] +// Message: Line comments should be JSDoc-style. + +var a = []; // Test comment +// "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"contextsBeforeAndAfter":["VariableDeclarator"]}] +// Message: Line comments should be JSDoc-style. ```` @@ -175,5 +242,9 @@ function quux () {} // @custom-something function quux () {} // "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"allowedPrefixes":["@custom-"]}] + +// Test comment +var a = []; +// "jsdoc/convert-to-jsdoc-comments": ["error"|"warn", {"contextsBeforeAndAfter":[],"contextsAfter":["VariableDeclarator"]}] ```` diff --git a/package.json b/package.json index f6b0ddae..7bee12ce 100644 --- a/package.json +++ b/package.json @@ -5,13 +5,13 @@ "url": "http://gajus.com" }, "dependencies": { - "@es-joy/jsdoccomment": "~0.44.0", + "@es-joy/jsdoccomment": "~0.45.0", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", "debug": "^4.3.5", "escape-string-regexp": "^4.0.0", - "esquery": "^1.5.0", - "parse-imports": "^2.1.0", + "esquery": "^1.6.0", + "parse-imports": "^2.1.1", "semver": "^7.6.2", "spdx-expression-parse": "^4.0.0", "synckit": "^0.9.0" @@ -29,7 +29,7 @@ "@es-joy/jsdoc-eslint-parser": "^0.21.1", "@hkdobrev/run-if-changed": "^0.3.1", "@semantic-release/commit-analyzer": "^13.0.0", - "@semantic-release/github": "^10.0.6", + "@semantic-release/github": "^10.1.0", "@semantic-release/npm": "^12.0.1", "@types/chai": "^4.3.16", "@types/debug": "^4.1.12", @@ -39,35 +39,35 @@ "@types/json-schema": "^7.0.15", "@types/lodash.defaultsdeep": "^4.6.9", "@types/mocha": "^10.0.7", - "@types/node": "^20.14.9", + "@types/node": "^20.14.10", "@types/semver": "^7.5.8", "@types/spdx-expression-parse": "^3.0.5", - "@typescript-eslint/types": "^7.14.1", + "@typescript-eslint/types": "^7.16.0", "babel-plugin-add-module-exports": "^1.0.4", - "babel-plugin-istanbul": "^6.1.1", + "babel-plugin-istanbul": "^7.0.0", "babel-plugin-transform-import-meta": "^2.2.1", "c8": "^10.1.2", "camelcase": "^6.3.0", "chai": "^4.3.10", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "9.5.0", + "eslint": "9.6.0", "eslint-config-canonical": "~43.0.13", "espree": "^10.1.0", "gitdown": "^3.1.5", "glob": "^10.4.2", - "globals": "^15.6.0", + "globals": "^15.8.0", "husky": "^9.0.11", "jsdoc-type-pratt-parser": "^4.0.0", "json-schema": "^0.4.0", "lint-staged": "^15.2.7", "lodash.defaultsdeep": "^4.6.1", - "mocha": "^10.5.2", + "mocha": "^10.6.0", "open-editor": "^3.0.0", "replace": "^1.2.2", "rimraf": "^5.0.7", "semantic-release": "^24.0.0", - "typescript": "5.3.x", + "typescript": "5.5.x", "typescript-eslint": "^8.0.0-alpha.34" }, "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ca671363..1c62e42b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@es-joy/jsdoccomment': - specifier: ~0.44.0 - version: 0.44.0 + specifier: ~0.45.0 + version: 0.45.0 are-docs-informative: specifier: ^0.0.2 version: 0.0.2 @@ -19,16 +19,16 @@ importers: version: 1.4.1 debug: specifier: ^4.3.5 - version: 4.3.5 + version: 4.3.5(supports-color@8.1.1) escape-string-regexp: specifier: ^4.0.0 version: 4.0.0 esquery: - specifier: ^1.5.0 - version: 1.5.0 + specifier: ^1.6.0 + version: 1.6.0 parse-imports: - specifier: ^2.1.0 - version: 2.1.0 + specifier: ^2.1.1 + version: 2.1.1 semver: specifier: ^7.6.2 version: 7.6.2 @@ -47,7 +47,7 @@ importers: version: 7.24.7 '@babel/eslint-parser': specifier: ^7.24.7 - version: 7.24.7(@babel/core@7.24.7)(eslint@9.5.0) + version: 7.24.7(@babel/core@7.24.7)(eslint@9.6.0) '@babel/node': specifier: ^7.24.7 version: 7.24.7(@babel/core@7.24.7) @@ -71,13 +71,13 @@ importers: version: 0.3.1 '@semantic-release/commit-analyzer': specifier: ^13.0.0 - version: 13.0.0(semantic-release@24.0.0(typescript@5.3.3)) + version: 13.0.0(semantic-release@24.0.0(typescript@5.5.3)) '@semantic-release/github': - specifier: ^10.0.6 - version: 10.0.6(semantic-release@24.0.0(typescript@5.3.3)) + specifier: ^10.1.0 + version: 10.1.0(semantic-release@24.0.0(typescript@5.5.3)) '@semantic-release/npm': specifier: ^12.0.1 - version: 12.0.1(semantic-release@24.0.0(typescript@5.3.3)) + version: 12.0.1(semantic-release@24.0.0(typescript@5.5.3)) '@types/chai': specifier: ^4.3.16 version: 4.3.16 @@ -103,8 +103,8 @@ importers: specifier: ^10.0.7 version: 10.0.7 '@types/node': - specifier: ^20.14.9 - version: 20.14.9 + specifier: ^20.14.10 + version: 20.14.10 '@types/semver': specifier: ^7.5.8 version: 7.5.8 @@ -112,14 +112,14 @@ importers: specifier: ^3.0.5 version: 3.0.5 '@typescript-eslint/types': - specifier: ^7.14.1 - version: 7.14.1 + specifier: ^7.16.0 + version: 7.16.0 babel-plugin-add-module-exports: specifier: ^1.0.4 version: 1.0.4 babel-plugin-istanbul: - specifier: ^6.1.1 - version: 6.1.1 + specifier: ^7.0.0 + version: 7.0.0 babel-plugin-transform-import-meta: specifier: ^2.2.1 version: 2.2.1(@babel/core@7.24.7) @@ -139,11 +139,11 @@ importers: specifier: ^5.0.1 version: 5.0.1 eslint: - specifier: 9.5.0 - version: 9.5.0 + specifier: 9.6.0 + version: 9.6.0 eslint-config-canonical: specifier: ~43.0.13 - version: 43.0.13(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.7))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.7))(@types/eslint@8.56.10)(@types/node@20.14.9)(encoding@0.1.13)(eslint@9.5.0)(typescript@5.3.3) + version: 43.0.13(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.7))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.7))(@types/eslint@8.56.10)(@types/node@20.14.10)(encoding@0.1.13)(eslint@9.6.0)(typescript@5.5.3) espree: specifier: ^10.1.0 version: 10.1.0 @@ -154,8 +154,8 @@ importers: specifier: ^10.4.2 version: 10.4.2 globals: - specifier: ^15.6.0 - version: 15.6.0 + specifier: ^15.8.0 + version: 15.8.0 husky: specifier: ^9.0.11 version: 9.0.11 @@ -172,8 +172,8 @@ importers: specifier: ^4.6.1 version: 4.6.1 mocha: - specifier: ^10.5.2 - version: 10.5.2 + specifier: ^10.6.0 + version: 10.6.0 open-editor: specifier: ^3.0.0 version: 3.0.0 @@ -185,13 +185,13 @@ importers: version: 5.0.7 semantic-release: specifier: ^24.0.0 - version: 24.0.0(typescript@5.3.3) + version: 24.0.0(typescript@5.5.3) typescript: - specifier: 5.3.x - version: 5.3.3 + specifier: 5.5.x + version: 5.5.3 typescript-eslint: specifier: ^8.0.0-alpha.34 - version: 8.0.0-alpha.34(eslint@9.5.0)(typescript@5.3.3) + version: 8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3) packages: @@ -424,11 +424,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/parser@7.23.6': - resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/parser@7.24.6': resolution: {integrity: sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==} engines: {node: '>=6.0.0'} @@ -957,8 +952,8 @@ packages: resolution: {integrity: sha512-I238eDtOolvCuvtxrnqtlBaw0BwdQuYqK7eA6XIonicMdOOOb75mqdIzkGDUbS04+1Di007rgm9snFRNeVrOog==} engines: {node: '>=16'} - '@es-joy/jsdoccomment@0.44.0': - resolution: {integrity: sha512-2KR2uvAhfrZeVJKBhQ5UU0LK7n9NU4RHs2B0bIjLkieZXsrkCMqWCJhwwSJ67qHoqjy4jj0+3qjl5SM2MnNmEg==} + '@es-joy/jsdoccomment@0.45.0': + resolution: {integrity: sha512-U8T5eXLkP78Sr12rR91494GhlEgp8jqs7OaUHbdUffADxU1JQmKjZm5uSyAEGv2oolDMJ+wce7yylfnnwOevtA==} engines: {node: '>=16'} '@eslint-community/eslint-utils@4.4.0': @@ -971,8 +966,8 @@ packages: resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.16.0': - resolution: {integrity: sha512-/jmuSd74i4Czf1XXn7wGRWZCuyaUZ330NH1Bek0Pplatt4Sy1S5haN21SCLLdbeKslQ+S0wEJ+++v5YibSi+Lg==} + '@eslint/config-array@0.17.0': + resolution: {integrity: sha512-A68TBu6/1mHHuc5YJL0U0VVeGNiklLAL6rRmhTCP2B5XjWLMnrX+HkO+IAXyHvks5cyyY1jjK5ITPQ1HGS2EVA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/eslintrc@2.1.4': @@ -987,8 +982,8 @@ packages: resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/js@9.5.0': - resolution: {integrity: sha512-A7+AOT2ICkodvtsWnxZP4Xxk3NbZ3VMHd8oihydLRGrJgqqdEz1qSeEgXYyT/Cu8h1TWWsQRejIx48mtjZ5y1w==} + '@eslint/js@9.6.0': + resolution: {integrity: sha512-D9B0/3vNg44ZeWbYMpBoXqNP4j6eQD5vNwIlGAuFRRzK/WtT/jvDQW3Bi9kkf3PMDMlM7Yi+73VLUsn5bJcl8A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.4': @@ -1273,8 +1268,8 @@ packages: resolution: {integrity: sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==} engines: {node: '>=18'} - '@semantic-release/github@10.0.6': - resolution: {integrity: sha512-sS4psqZacGTFEN49UQGqwFNG6Jyx2/RX1BhhDGn/2WoPbhAHislohOY05/5r+JoL4gJMWycfH7tEm1eGVutYeg==} + '@semantic-release/github@10.1.0': + resolution: {integrity: sha512-g4RHBaCWJjGcEy95TeTdajlmUoP5jAaF5trGkFXHKsT/VpCwawhZbNW66+sUr0c2CIAdfpCxxmK+E7GyWBWJDw==} engines: {node: '>=20.8.1'} peerDependencies: semantic-release: '>=20.1.0' @@ -1339,8 +1334,8 @@ packages: '@types/ms@0.7.34': resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - '@types/node@20.14.9': - resolution: {integrity: sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==} + '@types/node@20.14.10': + resolution: {integrity: sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -1467,6 +1462,10 @@ packages: resolution: {integrity: sha512-mL7zNEOQybo5R3AavY+Am7KLv8BorIv7HCYS5rKoNZKQD9tsfGUpO4KdAn3sSUvTiS4PQkr2+K0KJbxj8H9NDg==} engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/types@7.16.0': + resolution: {integrity: sha512-fecuH15Y+TzlUutvUl9Cc2XJxqdLr7+93SQIbcZfd4XRGGKoxyljK27b+kxKamjRkU7FYC6RrbSCg0ALcZn/xw==} + engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/types@8.0.0-alpha.34': resolution: {integrity: sha512-9d2pLf/htOVVX/VNQgRt23z5kCOznsiAVt1TllCiMT1xic0W8yKr2FT6sJHYIUl1qDjHE7t/P6CQpNFvyOfbxA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1614,8 +1613,8 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - ansi-colors@4.1.1: - resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} ansi-escapes@6.2.0: @@ -1783,9 +1782,9 @@ packages: babel-plugin-add-module-exports@1.0.4: resolution: {integrity: sha512-g+8yxHUZ60RcyaUpfNzy56OtWW+x9cyEe9j+CranqLiqbju2yf/Cy6ZtYK40EZxtrdHllzlVZgLmcOUCTlJ7Jg==} - babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} + babel-plugin-istanbul@7.0.0: + resolution: {integrity: sha512-C5OzENSx/A+gt7t4VH1I2XsflxyPUmXRFPKBxt33xncdOmq7oROVM3bZv9Ysjjkv8OJYDMa+tKuKMvqU/H3xdw==} + engines: {node: '>=12'} babel-plugin-polyfill-corejs2@0.4.10: resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} @@ -2197,15 +2196,6 @@ packages: supports-color: optional: true - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.3.5: resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} engines: {node: '>=6.0'} @@ -2270,8 +2260,8 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - diff@5.0.0: - resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} + diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} dir-glob@3.0.1: @@ -2716,8 +2706,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true - eslint@9.5.0: - resolution: {integrity: sha512-+NAOZFrW/jFTS3dASCGBxX1pkFD0/fsO+hfAkJ4TyYKwgsXZbqzrw+seCYFCcPCYXvnD67tAnglU7GQTz6kcVw==} + eslint@9.6.0: + resolution: {integrity: sha512-ElQkdLMEEqQNM9Njff+2Y4q2afHk7JpkPvrd7Xh7xefwgQynqPxwf55J7di9+MEibWUGdNjFF9ITG9Pck5M84w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true @@ -2737,8 +2727,8 @@ packages: espurify@2.1.1: resolution: {integrity: sha512-zttWvnkhcDyGOhSH4vO2qCBILpdCMv/MX8lp4cqgRkQoDRGK2oZxi2GfWhlP2dIXmk7BaKeOTuzbHhyC68o8XQ==} - esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} esrecurse@4.3.0: @@ -3086,8 +3076,8 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@15.6.0: - resolution: {integrity: sha512-UzcJi88Hw//CurUIRa9Jxb0vgOCcuD/MNjwmXp633cyaRKkCWACkoqHCtfZv43b1kqXGg/fpOa8bwgacCeXsVg==} + globals@15.8.0: + resolution: {integrity: sha512-VZAJ4cewHTExBWDHR6yptdIBlx9YSSZuwojj9Nt5mBRXQzrKakDsVKQ1J63sklLvzAJm0X5+RpO4i3Y2hcOnFw==} engines: {node: '>=18'} globalthis@1.0.3: @@ -3606,9 +3596,9 @@ packages: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} - istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} + istanbul-lib-instrument@6.0.3: + resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} + engines: {node: '>=10'} istanbul-lib-report@3.0.1: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} @@ -3961,8 +3951,8 @@ packages: resolution: {integrity: sha512-lIUdtK5hdofgCTu3aT0sOaHsYR37viUuIc0rwnnDXImbwFRcumyLMeZaM0t0I/fgxS6s6JMfu0rLD1Wz9pv1ng==} engines: {node: '>=10'} - minimatch@5.0.1: - resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} minimatch@9.0.3: @@ -4021,8 +4011,8 @@ packages: engines: {node: '>=10'} hasBin: true - mocha@10.5.2: - resolution: {integrity: sha512-9btlN3JKCefPf+vKd/kcKz2SXxi12z6JswkGfaAF0saQvnsqLJk504ZmbxhSoENge08E9dsymozKgFMTl5PQsA==} + mocha@10.6.0: + resolution: {integrity: sha512-hxjt4+EEB0SA0ZDygSS015t65lJw/I2yRCS3Ae+SJ5FrbzrXgfYwJr96f0OvIXdj7h4lv/vLCrH3rkiuizFSvw==} engines: {node: '>= 14.0.0'} hasBin: true @@ -4377,8 +4367,8 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parse-imports@2.1.0: - resolution: {integrity: sha512-JQWgmK2o4w8leUkZeZPatWdAny6vXGU/3siIUvMF6J2rDCud9aTt8h/px9oZJ6U3EcfhngBJ635uPFI0q0VAeA==} + parse-imports@2.1.1: + resolution: {integrity: sha512-TDT4HqzUiTMO1wJRwg/t/hYk8Wdp3iF/ToMIlAoVQfL1Xs/sTxq1dKWSMjMbQmIarfWKymOyly40+zmPHXMqCA==} engines: {node: '>= 18'} parse-json@4.0.0: @@ -4841,8 +4831,8 @@ packages: engines: {node: '>=10'} hasBin: true - serialize-javascript@6.0.0: - resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} @@ -5339,8 +5329,8 @@ packages: typescript: optional: true - typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + typescript@5.5.3: + resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==} engines: {node: '>=14.17'} hasBin: true @@ -5526,8 +5516,8 @@ packages: wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - workerpool@6.2.1: - resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} + workerpool@6.5.1: + resolution: {integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==} wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} @@ -5616,6 +5606,10 @@ packages: resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} engines: {node: '>=10'} + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -5703,7 +5697,7 @@ snapshots: '@babel/traverse': 7.24.7 '@babel/types': 7.24.7 convert-source-map: 2.0.0 - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -5718,18 +5712,18 @@ snapshots: eslint-visitor-keys: 2.1.0 semver: 6.3.1 - '@babel/eslint-parser@7.24.7(@babel/core@7.24.7)(eslint@9.5.0)': + '@babel/eslint-parser@7.24.7(@babel/core@7.24.7)(eslint@9.6.0)': dependencies: '@babel/core': 7.24.7 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 9.5.0 + eslint: 9.6.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 - '@babel/eslint-plugin@7.24.7(@babel/eslint-parser@7.24.7(@babel/core@7.24.7)(eslint@9.5.0))(eslint@9.5.0)': + '@babel/eslint-plugin@7.24.7(@babel/eslint-parser@7.24.7(@babel/core@7.24.7)(eslint@9.6.0))(eslint@9.6.0)': dependencies: - '@babel/eslint-parser': 7.24.7(@babel/core@7.24.7)(eslint@9.5.0) - eslint: 9.5.0 + '@babel/eslint-parser': 7.24.7(@babel/core@7.24.7)(eslint@9.6.0) + eslint: 9.6.0 eslint-rule-composer: 0.3.0 '@babel/generator@7.24.6': @@ -5803,7 +5797,7 @@ snapshots: '@babel/core': 7.24.7 '@babel/helper-compilation-targets': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: @@ -5963,10 +5957,6 @@ snapshots: regenerator-runtime: 0.14.1 v8flags: 3.2.0 - '@babel/parser@7.23.6': - dependencies: - '@babel/types': 7.24.6 - '@babel/parser@7.24.6': dependencies: '@babel/types': 7.24.6 @@ -6582,7 +6572,7 @@ snapshots: '@babel/helper-split-export-declaration': 7.24.6 '@babel/parser': 7.24.6 '@babel/types': 7.24.6 - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -6597,7 +6587,7 @@ snapshots: '@babel/helper-split-export-declaration': 7.24.7 '@babel/parser': 7.24.7 '@babel/types': 7.24.7 - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -6635,35 +6625,34 @@ snapshots: '@babel/core': 7.24.7 '@babel/eslint-parser': 7.24.7(@babel/core@7.24.7)(eslint@8.56.0) '@es-joy/jsdoccomment': 0.41.0 - '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.5.3) eslint: 8.56.0 - esquery: 1.5.0 - typescript: 5.3.3 + esquery: 1.6.0 + typescript: 5.5.3 transitivePeerDependencies: - supports-color '@es-joy/jsdoccomment@0.41.0': dependencies: comment-parser: 1.4.1 - esquery: 1.5.0 + esquery: 1.6.0 jsdoc-type-pratt-parser: 4.0.0 '@es-joy/jsdoccomment@0.43.1': dependencies: '@types/eslint': 8.56.10 '@types/estree': 1.0.5 - '@typescript-eslint/types': 7.14.1 + '@typescript-eslint/types': 7.16.0 comment-parser: 1.4.1 - esquery: 1.5.0 + esquery: 1.6.0 jsdoc-type-pratt-parser: 4.0.0 - '@es-joy/jsdoccomment@0.44.0': + '@es-joy/jsdoccomment@0.45.0': dependencies: '@types/eslint': 8.56.10 '@types/estree': 1.0.5 - '@typescript-eslint/types': 7.14.1 comment-parser: 1.4.1 - esquery: 1.5.0 + esquery: 1.6.0 jsdoc-type-pratt-parser: 4.0.0 '@eslint-community/eslint-utils@4.4.0(eslint@8.56.0)': @@ -6671,17 +6660,17 @@ snapshots: eslint: 8.56.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.4.0(eslint@9.5.0)': + '@eslint-community/eslint-utils@4.4.0(eslint@9.6.0)': dependencies: - eslint: 9.5.0 + eslint: 9.6.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.10.0': {} - '@eslint/config-array@0.16.0': + '@eslint/config-array@0.17.0': dependencies: '@eslint/object-schema': 2.1.4 - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -6689,7 +6678,7 @@ snapshots: '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) espree: 9.6.1 globals: 13.24.0 ignore: 5.3.1 @@ -6703,7 +6692,7 @@ snapshots: '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) espree: 10.1.0 globals: 14.0.0 ignore: 5.3.1 @@ -6716,21 +6705,21 @@ snapshots: '@eslint/js@8.56.0': {} - '@eslint/js@9.5.0': {} + '@eslint/js@9.6.0': {} '@eslint/object-schema@2.1.4': {} - '@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.24.7)(@types/node@20.14.9)(encoding@0.1.13)(graphql@16.8.1)': + '@graphql-eslint/eslint-plugin@3.20.1(@babel/core@7.24.7)(@types/node@20.14.10)(encoding@0.1.13)(graphql@16.8.1)': dependencies: '@babel/code-frame': 7.24.6 '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.24.7)(graphql@16.8.1) '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.24.7)(graphql@16.8.1) '@graphql-tools/utils': 9.2.1(graphql@16.8.1) chalk: 4.1.2 - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) fast-glob: 3.3.2 graphql: 16.8.1 - graphql-config: 4.5.0(@types/node@20.14.9)(encoding@0.1.13)(graphql@16.8.1) + graphql-config: 4.5.0(@types/node@20.14.10)(encoding@0.1.13)(graphql@16.8.1) graphql-depth-limit: 1.1.0(graphql@16.8.1) lodash.lowercase: 4.3.0 tslib: 2.6.2 @@ -6788,7 +6777,7 @@ snapshots: - bufferutil - utf-8-validate - '@graphql-tools/executor-http@0.1.10(@types/node@20.14.9)(graphql@16.8.1)': + '@graphql-tools/executor-http@0.1.10(@types/node@20.14.10)(graphql@16.8.1)': dependencies: '@graphql-tools/utils': 9.2.1(graphql@16.8.1) '@repeaterjs/repeater': 3.0.5 @@ -6796,7 +6785,7 @@ snapshots: dset: 3.1.3 extract-files: 11.0.0 graphql: 16.8.1 - meros: 1.3.0(@types/node@20.14.9) + meros: 1.3.0(@types/node@20.14.10) tslib: 2.6.2 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -6882,12 +6871,12 @@ snapshots: tslib: 2.6.2 value-or-promise: 1.0.12 - '@graphql-tools/url-loader@7.17.18(@types/node@20.14.9)(encoding@0.1.13)(graphql@16.8.1)': + '@graphql-tools/url-loader@7.17.18(@types/node@20.14.10)(encoding@0.1.13)(graphql@16.8.1)': dependencies: '@ardatan/sync-fetch': 0.0.1(encoding@0.1.13) '@graphql-tools/delegate': 9.0.35(graphql@16.8.1) '@graphql-tools/executor-graphql-ws': 0.0.14(graphql@16.8.1) - '@graphql-tools/executor-http': 0.1.10(@types/node@20.14.9)(graphql@16.8.1) + '@graphql-tools/executor-http': 0.1.10(@types/node@20.14.10)(graphql@16.8.1) '@graphql-tools/executor-legacy-ws': 0.0.11(graphql@16.8.1) '@graphql-tools/utils': 9.2.1(graphql@16.8.1) '@graphql-tools/wrap': 9.4.2(graphql@16.8.1) @@ -6936,7 +6925,7 @@ snapshots: '@humanwhocodes/config-array@0.11.13': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -7125,23 +7114,23 @@ snapshots: '@sec-ant/readable-stream@0.4.1': {} - '@semantic-release/commit-analyzer@13.0.0(semantic-release@24.0.0(typescript@5.3.3))': + '@semantic-release/commit-analyzer@13.0.0(semantic-release@24.0.0(typescript@5.5.3))': dependencies: conventional-changelog-angular: 8.0.0 conventional-changelog-writer: 8.0.0 conventional-commits-filter: 5.0.0 conventional-commits-parser: 6.0.0 - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) import-from-esm: 1.3.3 lodash-es: 4.17.21 micromatch: 4.0.7 - semantic-release: 24.0.0(typescript@5.3.3) + semantic-release: 24.0.0(typescript@5.5.3) transitivePeerDependencies: - supports-color '@semantic-release/error@4.0.0': {} - '@semantic-release/github@10.0.6(semantic-release@24.0.0(typescript@5.3.3))': + '@semantic-release/github@10.1.0(semantic-release@24.0.0(typescript@5.5.3))': dependencies: '@octokit/core': 6.1.1 '@octokit/plugin-paginate-rest': 11.3.0(@octokit/core@6.1.1) @@ -7149,7 +7138,7 @@ snapshots: '@octokit/plugin-throttling': 9.1.0(@octokit/core@6.1.1) '@semantic-release/error': 4.0.0 aggregate-error: 5.0.0 - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) dir-glob: 3.0.1 globby: 14.0.0 http-proxy-agent: 7.0.0 @@ -7158,12 +7147,12 @@ snapshots: lodash-es: 4.17.21 mime: 4.0.1 p-filter: 4.1.0 - semantic-release: 24.0.0(typescript@5.3.3) + semantic-release: 24.0.0(typescript@5.5.3) url-join: 5.0.0 transitivePeerDependencies: - supports-color - '@semantic-release/npm@12.0.1(semantic-release@24.0.0(typescript@5.3.3))': + '@semantic-release/npm@12.0.1(semantic-release@24.0.0(typescript@5.5.3))': dependencies: '@semantic-release/error': 4.0.0 aggregate-error: 5.0.0 @@ -7176,23 +7165,23 @@ snapshots: rc: 1.2.8 read-pkg: 9.0.1 registry-auth-token: 5.0.2 - semantic-release: 24.0.0(typescript@5.3.3) + semantic-release: 24.0.0(typescript@5.5.3) semver: 7.6.2 tempy: 3.1.0 - '@semantic-release/release-notes-generator@14.0.1(semantic-release@24.0.0(typescript@5.3.3))': + '@semantic-release/release-notes-generator@14.0.1(semantic-release@24.0.0(typescript@5.5.3))': dependencies: conventional-changelog-angular: 8.0.0 conventional-changelog-writer: 8.0.0 conventional-commits-filter: 5.0.0 conventional-commits-parser: 6.0.0 - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) get-stream: 7.0.1 import-from-esm: 1.3.3 into-stream: 7.0.0 lodash-es: 4.17.21 read-package-up: 11.0.0 - semantic-release: 24.0.0(typescript@5.3.3) + semantic-release: 24.0.0(typescript@5.5.3) transitivePeerDependencies: - supports-color @@ -7235,7 +7224,7 @@ snapshots: '@types/ms@0.7.34': {} - '@types/node@20.14.9': + '@types/node@20.14.10': dependencies: undici-types: 5.26.5 @@ -7247,88 +7236,88 @@ snapshots: '@types/ws@8.5.10': dependencies: - '@types/node': 20.14.9 + '@types/node': 20.14.10 - '@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.5.0)(typescript@5.3.3))(eslint@9.5.0)(typescript@5.3.3)': + '@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3)': dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 8.0.0-alpha.34(eslint@9.5.0)(typescript@5.3.3) + '@typescript-eslint/parser': 8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3) '@typescript-eslint/scope-manager': 7.14.1 - '@typescript-eslint/type-utils': 7.14.1(eslint@9.5.0)(typescript@5.3.3) - '@typescript-eslint/utils': 7.14.1(eslint@9.5.0)(typescript@5.3.3) + '@typescript-eslint/type-utils': 7.14.1(eslint@9.6.0)(typescript@5.5.3) + '@typescript-eslint/utils': 7.14.1(eslint@9.6.0)(typescript@5.5.3) '@typescript-eslint/visitor-keys': 7.14.1 - eslint: 9.5.0 + eslint: 9.6.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.3.3) + ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: - typescript: 5.3.3 + typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.0.0-alpha.34(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.5.0)(typescript@5.3.3))(eslint@9.5.0)(typescript@5.3.3)': + '@typescript-eslint/eslint-plugin@8.0.0-alpha.34(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3)': dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 8.0.0-alpha.34(eslint@9.5.0)(typescript@5.3.3) + '@typescript-eslint/parser': 8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3) '@typescript-eslint/scope-manager': 8.0.0-alpha.34 - '@typescript-eslint/type-utils': 8.0.0-alpha.34(eslint@9.5.0)(typescript@5.3.3) - '@typescript-eslint/utils': 8.0.0-alpha.34(eslint@9.5.0)(typescript@5.3.3) + '@typescript-eslint/type-utils': 8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3) + '@typescript-eslint/utils': 8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3) '@typescript-eslint/visitor-keys': 8.0.0-alpha.34 - eslint: 9.5.0 + eslint: 9.6.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.3.3) + ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: - typescript: 5.3.3 + typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/experimental-utils@5.62.0(eslint@9.5.0)(typescript@5.3.3)': + '@typescript-eslint/experimental-utils@5.62.0(eslint@9.6.0)(typescript@5.5.3)': dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@9.5.0)(typescript@5.3.3) - eslint: 9.5.0 + '@typescript-eslint/utils': 5.62.0(eslint@9.6.0)(typescript@5.5.3) + eslint: 9.6.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3)': + '@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.5.3)': dependencies: '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.3) '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) eslint: 8.56.0 optionalDependencies: - typescript: 5.3.3 + typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3)': + '@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3)': dependencies: '@typescript-eslint/scope-manager': 7.14.1 '@typescript-eslint/types': 7.14.1 - '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.3) '@typescript-eslint/visitor-keys': 7.14.1 - debug: 4.3.5 - eslint: 9.5.0 + debug: 4.3.5(supports-color@8.1.1) + eslint: 9.6.0 optionalDependencies: - typescript: 5.3.3 + typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.5.0)(typescript@5.3.3)': + '@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3)': dependencies: '@typescript-eslint/scope-manager': 8.0.0-alpha.34 '@typescript-eslint/types': 8.0.0-alpha.34 - '@typescript-eslint/typescript-estree': 8.0.0-alpha.34(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 8.0.0-alpha.34(typescript@5.5.3) '@typescript-eslint/visitor-keys': 8.0.0-alpha.34 - debug: 4.3.5 - eslint: 9.5.0 + debug: 4.3.5(supports-color@8.1.1) + eslint: 9.6.0 optionalDependencies: - typescript: 5.3.3 + typescript: 5.5.3 transitivePeerDependencies: - supports-color @@ -7357,26 +7346,26 @@ snapshots: '@typescript-eslint/types': 8.0.0-alpha.34 '@typescript-eslint/visitor-keys': 8.0.0-alpha.34 - '@typescript-eslint/type-utils@7.14.1(eslint@9.5.0)(typescript@5.3.3)': + '@typescript-eslint/type-utils@7.14.1(eslint@9.6.0)(typescript@5.5.3)': dependencies: - '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.3.3) - '@typescript-eslint/utils': 7.14.1(eslint@9.5.0)(typescript@5.3.3) - debug: 4.3.5 - eslint: 9.5.0 - ts-api-utils: 1.3.0(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.3) + '@typescript-eslint/utils': 7.14.1(eslint@9.6.0)(typescript@5.5.3) + debug: 4.3.5(supports-color@8.1.1) + eslint: 9.6.0 + ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: - typescript: 5.3.3 + typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.0.0-alpha.34(eslint@9.5.0)(typescript@5.3.3)': + '@typescript-eslint/type-utils@8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.0.0-alpha.34(typescript@5.3.3) - '@typescript-eslint/utils': 8.0.0-alpha.34(eslint@9.5.0)(typescript@5.3.3) - debug: 4.3.5 - ts-api-utils: 1.3.0(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 8.0.0-alpha.34(typescript@5.5.3) + '@typescript-eslint/utils': 8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3) + debug: 4.3.5(supports-color@8.1.1) + ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: - typescript: 5.3.3 + typescript: 5.5.3 transitivePeerDependencies: - eslint - supports-color @@ -7389,129 +7378,131 @@ snapshots: '@typescript-eslint/types@7.14.1': {} + '@typescript-eslint/types@7.16.0': {} + '@typescript-eslint/types@8.0.0-alpha.34': {} - '@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3)': + '@typescript-eslint/typescript-estree@5.62.0(typescript@5.5.3)': dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 semver: 7.6.2 - tsutils: 3.21.0(typescript@5.3.3) + tsutils: 3.21.0(typescript@5.5.3) optionalDependencies: - typescript: 5.3.3 + typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@6.19.1(typescript@5.3.3)': + '@typescript-eslint/typescript-estree@6.19.1(typescript@5.5.3)': dependencies: '@typescript-eslint/types': 6.19.1 '@typescript-eslint/visitor-keys': 6.19.1 - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 semver: 7.6.2 - ts-api-utils: 1.3.0(typescript@5.3.3) + ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: - typescript: 5.3.3 + typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3)': + '@typescript-eslint/typescript-estree@6.21.0(typescript@5.5.3)': dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 semver: 7.6.2 - ts-api-utils: 1.0.3(typescript@5.3.3) + ts-api-utils: 1.0.3(typescript@5.5.3) optionalDependencies: - typescript: 5.3.3 + typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@7.14.1(typescript@5.3.3)': + '@typescript-eslint/typescript-estree@7.14.1(typescript@5.5.3)': dependencies: '@typescript-eslint/types': 7.14.1 '@typescript-eslint/visitor-keys': 7.14.1 - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.4 semver: 7.6.2 - ts-api-utils: 1.3.0(typescript@5.3.3) + ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: - typescript: 5.3.3 + typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.0.0-alpha.34(typescript@5.3.3)': + '@typescript-eslint/typescript-estree@8.0.0-alpha.34(typescript@5.5.3)': dependencies: '@typescript-eslint/types': 8.0.0-alpha.34 '@typescript-eslint/visitor-keys': 8.0.0-alpha.34 - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.4 semver: 7.6.2 - ts-api-utils: 1.3.0(typescript@5.3.3) + ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: - typescript: 5.3.3 + typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@5.62.0(eslint@9.5.0)(typescript@5.3.3)': + '@typescript-eslint/utils@5.62.0(eslint@9.6.0)(typescript@5.5.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) - eslint: 9.5.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.3) + eslint: 9.6.0 eslint-scope: 5.1.1 semver: 7.6.2 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@6.19.1(eslint@9.5.0)(typescript@5.3.3)': + '@typescript-eslint/utils@6.19.1(eslint@9.6.0)(typescript@5.5.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 6.19.1 '@typescript-eslint/types': 6.19.1 - '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.3.3) - eslint: 9.5.0 + '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.5.3) + eslint: 9.6.0 semver: 7.6.2 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@7.14.1(eslint@9.5.0)(typescript@5.3.3)': + '@typescript-eslint/utils@7.14.1(eslint@9.6.0)(typescript@5.5.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) '@typescript-eslint/scope-manager': 7.14.1 '@typescript-eslint/types': 7.14.1 - '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.3.3) - eslint: 9.5.0 + '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.3) + eslint: 9.6.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.0.0-alpha.34(eslint@9.5.0)(typescript@5.3.3)': + '@typescript-eslint/utils@8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) '@typescript-eslint/scope-manager': 8.0.0-alpha.34 '@typescript-eslint/types': 8.0.0-alpha.34 - '@typescript-eslint/typescript-estree': 8.0.0-alpha.34(typescript@5.3.3) - eslint: 9.5.0 + '@typescript-eslint/typescript-estree': 8.0.0-alpha.34(typescript@5.5.3) + eslint: 9.6.0 transitivePeerDependencies: - supports-color - typescript @@ -7583,7 +7574,7 @@ snapshots: agent-base@7.1.0: dependencies: - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -7604,7 +7595,7 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ansi-colors@4.1.1: {} + ansi-colors@4.1.3: {} ansi-escapes@6.2.0: dependencies: @@ -7780,12 +7771,12 @@ snapshots: babel-plugin-add-module-exports@1.0.4: {} - babel-plugin-istanbul@6.1.1: + babel-plugin-istanbul@7.0.0: dependencies: - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-plugin-utils': 7.24.7 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.2.1 + istanbul-lib-instrument: 6.0.3 test-exclude: 6.0.0 transitivePeerDependencies: - supports-color @@ -8178,14 +8169,14 @@ snapshots: parse-json: 5.2.0 path-type: 4.0.0 - cosmiconfig@9.0.0(typescript@5.3.3): + cosmiconfig@9.0.0(typescript@5.5.3): dependencies: env-paths: 2.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 optionalDependencies: - typescript: 5.3.3 + typescript: 5.5.3 create-eslint-index@1.0.0: dependencies: @@ -8259,16 +8250,12 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.3.4(supports-color@8.1.1): + debug@4.3.5(supports-color@8.1.1): dependencies: ms: 2.1.2 optionalDependencies: supports-color: 8.1.1 - debug@4.3.5: - dependencies: - ms: 2.1.2 - decamelize@1.2.0: {} decamelize@4.0.0: {} @@ -8333,7 +8320,7 @@ snapshots: delayed-stream@1.0.0: {} - diff@5.0.0: {} + diff@5.2.0: {} dir-glob@3.0.1: dependencies: @@ -8564,55 +8551,55 @@ snapshots: lodash.get: 4.4.2 lodash.zip: 4.2.0 - eslint-compat-utils@0.1.2(eslint@9.5.0): + eslint-compat-utils@0.1.2(eslint@9.6.0): dependencies: - eslint: 9.5.0 + eslint: 9.6.0 - eslint-compat-utils@0.5.0(eslint@9.5.0): + eslint-compat-utils@0.5.0(eslint@9.6.0): dependencies: - eslint: 9.5.0 + eslint: 9.6.0 semver: 7.6.2 - eslint-config-canonical@43.0.13(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.7))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.7))(@types/eslint@8.56.10)(@types/node@20.14.9)(encoding@0.1.13)(eslint@9.5.0)(typescript@5.3.3): + eslint-config-canonical@43.0.13(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.7))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.7))(@types/eslint@8.56.10)(@types/node@20.14.10)(encoding@0.1.13)(eslint@9.6.0)(typescript@5.5.3): dependencies: '@babel/core': 7.24.7 - '@babel/eslint-parser': 7.24.7(@babel/core@7.24.7)(eslint@9.5.0) - '@babel/eslint-plugin': 7.24.7(@babel/eslint-parser@7.24.7(@babel/core@7.24.7)(eslint@9.5.0))(eslint@9.5.0) + '@babel/eslint-parser': 7.24.7(@babel/core@7.24.7)(eslint@9.6.0) + '@babel/eslint-plugin': 7.24.7(@babel/eslint-parser@7.24.7(@babel/core@7.24.7)(eslint@9.6.0))(eslint@9.6.0) '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.24.7) - '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.24.7)(@types/node@20.14.9)(encoding@0.1.13)(graphql@16.8.1) + '@graphql-eslint/eslint-plugin': 3.20.1(@babel/core@7.24.7)(@types/node@20.14.10)(encoding@0.1.13)(graphql@16.8.1) '@next/eslint-plugin-next': 14.2.4 - '@typescript-eslint/eslint-plugin': 7.14.1(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.5.0)(typescript@5.3.3))(eslint@9.5.0)(typescript@5.3.3) - '@typescript-eslint/parser': 7.14.1(eslint@9.5.0)(typescript@5.3.3) - eslint: 9.5.0 - eslint-config-prettier: 9.1.0(eslint@9.5.0) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.5.0) - eslint-plugin-ava: 15.0.1(eslint@9.5.0) - eslint-plugin-canonical: 4.18.1(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.5.0))(eslint@9.5.0)(typescript@5.3.3) - eslint-plugin-cypress: 3.3.0(eslint@9.5.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@9.5.0) - eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.7))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.7))(eslint@9.5.0) - eslint-plugin-fp: 2.3.0(eslint@9.5.0) - eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.5.0) - eslint-plugin-jest: 28.6.0(@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3))(eslint@9.5.0)(typescript@5.3.3))(eslint@9.5.0)(typescript@5.3.3) - eslint-plugin-jsdoc: 48.5.0(eslint@9.5.0) - eslint-plugin-jsonc: 2.16.0(eslint@9.5.0) - eslint-plugin-jsx-a11y: 6.9.0(eslint@9.5.0) - eslint-plugin-lodash: 8.0.0(eslint@9.5.0) - eslint-plugin-mocha: 10.4.3(eslint@9.5.0) + '@typescript-eslint/eslint-plugin': 7.14.1(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3) + '@typescript-eslint/parser': 7.14.1(eslint@9.6.0)(typescript@5.5.3) + eslint: 9.6.0 + eslint-config-prettier: 9.1.0(eslint@9.6.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3))(eslint-plugin-i@2.29.1)(eslint@9.6.0) + eslint-plugin-ava: 15.0.1(eslint@9.6.0) + eslint-plugin-canonical: 4.18.1(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.6.0))(eslint@9.6.0)(typescript@5.5.3) + eslint-plugin-cypress: 3.3.0(eslint@9.6.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@9.6.0) + eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.7))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.7))(eslint@9.6.0) + eslint-plugin-fp: 2.3.0(eslint@9.6.0) + eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.6.0) + eslint-plugin-jest: 28.6.0(@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3) + eslint-plugin-jsdoc: 48.5.0(eslint@9.6.0) + eslint-plugin-jsonc: 2.16.0(eslint@9.6.0) + eslint-plugin-jsx-a11y: 6.9.0(eslint@9.6.0) + eslint-plugin-lodash: 8.0.0(eslint@9.6.0) + eslint-plugin-mocha: 10.4.3(eslint@9.6.0) eslint-plugin-modules-newline: 0.0.6 - eslint-plugin-n: 17.9.0(eslint@9.5.0) - eslint-plugin-prettier: 5.1.3(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@9.5.0))(eslint@9.5.0)(prettier@3.3.2) - eslint-plugin-promise: 6.2.0(eslint@9.5.0) - eslint-plugin-react: 7.34.3(eslint@9.5.0) - eslint-plugin-react-hooks: 4.6.2(eslint@9.5.0) - eslint-plugin-regexp: 2.6.0(eslint@9.5.0) - eslint-plugin-simple-import-sort: 12.1.0(eslint@9.5.0) - eslint-plugin-typescript-sort-keys: 3.2.0(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3))(eslint@9.5.0)(typescript@5.3.3) - eslint-plugin-unicorn: 54.0.0(eslint@9.5.0) - eslint-plugin-vitest: 0.5.4(@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3))(eslint@9.5.0)(typescript@5.3.3))(eslint@9.5.0)(typescript@5.3.3) - eslint-plugin-yml: 1.14.0(eslint@9.5.0) - eslint-plugin-zod: 1.4.0(eslint@9.5.0) - globals: 15.6.0 + eslint-plugin-n: 17.9.0(eslint@9.6.0) + eslint-plugin-prettier: 5.1.3(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@9.6.0))(eslint@9.6.0)(prettier@3.3.2) + eslint-plugin-promise: 6.2.0(eslint@9.6.0) + eslint-plugin-react: 7.34.3(eslint@9.6.0) + eslint-plugin-react-hooks: 4.6.2(eslint@9.6.0) + eslint-plugin-regexp: 2.6.0(eslint@9.6.0) + eslint-plugin-simple-import-sort: 12.1.0(eslint@9.6.0) + eslint-plugin-typescript-sort-keys: 3.2.0(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3) + eslint-plugin-unicorn: 54.0.0(eslint@9.6.0) + eslint-plugin-vitest: 0.5.4(@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3) + eslint-plugin-yml: 1.14.0(eslint@9.6.0) + eslint-plugin-zod: 1.4.0(eslint@9.6.0) + globals: 15.8.0 graphql: 16.8.1 prettier: 3.3.2 ramda: 0.30.0 @@ -8633,9 +8620,9 @@ snapshots: - utf-8-validate - vitest - eslint-config-prettier@9.1.0(eslint@9.5.0): + eslint-config-prettier@9.1.0(eslint@9.6.0): dependencies: - eslint: 9.5.0 + eslint: 9.6.0 eslint-import-resolver-node@0.3.9: dependencies: @@ -8645,13 +8632,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.5.0): + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3))(eslint-plugin-i@2.29.1)(eslint@9.6.0): dependencies: - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) enhanced-resolve: 5.15.0 - eslint: 9.5.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.5.0))(eslint@9.5.0) - eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.5.0) + eslint: 9.6.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3))(eslint-plugin-i@2.29.1)(eslint@9.6.0))(eslint@9.6.0) + eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.6.0) fast-glob: 3.3.2 get-tsconfig: 4.7.2 is-core-module: 2.13.1 @@ -8662,22 +8649,22 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.8.0(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.5.0))(eslint@9.5.0): + eslint-module-utils@2.8.0(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3))(eslint-plugin-i@2.29.1)(eslint@9.6.0))(eslint@9.6.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.14.1(eslint@9.5.0)(typescript@5.3.3) - eslint: 9.5.0 + '@typescript-eslint/parser': 7.14.1(eslint@9.6.0)(typescript@5.5.3) + eslint: 9.6.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.5.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3))(eslint-plugin-i@2.29.1)(eslint@9.6.0) transitivePeerDependencies: - supports-color - eslint-plugin-ava@15.0.1(eslint@9.5.0): + eslint-plugin-ava@15.0.1(eslint@9.6.0): dependencies: enhance-visitors: 1.0.0 - eslint: 9.5.0 - eslint-utils: 3.0.0(eslint@9.5.0) + eslint: 9.6.0 + eslint-utils: 3.0.0(eslint@9.6.0) espree: 9.6.1 espurify: 2.1.1 import-modules: 2.1.0 @@ -8685,13 +8672,13 @@ snapshots: pkg-dir: 5.0.0 resolve-from: 5.0.0 - eslint-plugin-canonical@4.18.1(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.5.0))(eslint@9.5.0)(typescript@5.3.3): + eslint-plugin-canonical@4.18.1(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.6.0))(eslint@9.6.0)(typescript@5.5.3): dependencies: - '@typescript-eslint/utils': 6.19.1(eslint@9.5.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.19.1(eslint@9.6.0)(typescript@5.5.3) chance: 1.1.11 - debug: 4.3.5 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.5.0) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.5.0))(eslint@9.5.0) + debug: 4.3.5(supports-color@8.1.1) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3))(eslint-plugin-i@2.29.1)(eslint@9.6.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3))(eslint-plugin-i@2.29.1)(eslint@9.6.0))(eslint@9.6.0) is-get-set-prop: 1.0.0 is-js-type: 2.0.0 is-obj-prop: 1.0.0 @@ -8700,7 +8687,7 @@ snapshots: natural-compare: 1.4.0 recast: 0.23.4 roarr: 7.21.0 - ts-unused-exports: 9.0.5(typescript@5.3.3) + ts-unused-exports: 9.0.5(typescript@5.5.3) xregexp: 5.1.1 transitivePeerDependencies: - '@typescript-eslint/parser' @@ -8711,47 +8698,47 @@ snapshots: - supports-color - typescript - eslint-plugin-cypress@3.3.0(eslint@9.5.0): + eslint-plugin-cypress@3.3.0(eslint@9.6.0): dependencies: - eslint: 9.5.0 + eslint: 9.6.0 globals: 13.24.0 - eslint-plugin-es-x@7.5.0(eslint@9.5.0): + eslint-plugin-es-x@7.5.0(eslint@9.6.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) '@eslint-community/regexpp': 4.10.0 - eslint: 9.5.0 - eslint-compat-utils: 0.1.2(eslint@9.5.0) + eslint: 9.6.0 + eslint-compat-utils: 0.1.2(eslint@9.6.0) - eslint-plugin-eslint-comments@3.2.0(eslint@9.5.0): + eslint-plugin-eslint-comments@3.2.0(eslint@9.6.0): dependencies: escape-string-regexp: 1.0.5 - eslint: 9.5.0 + eslint: 9.6.0 ignore: 5.3.1 - eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.7))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.7))(eslint@9.5.0): + eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.7))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.7))(eslint@9.6.0): dependencies: '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.24.7) '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.7) - eslint: 9.5.0 + eslint: 9.6.0 lodash: 4.17.21 string-natural-compare: 3.0.1 - eslint-plugin-fp@2.3.0(eslint@9.5.0): + eslint-plugin-fp@2.3.0(eslint@9.6.0): dependencies: create-eslint-index: 1.0.0 - eslint: 9.5.0 + eslint: 9.6.0 eslint-ast-utils: 1.1.0 lodash: 4.17.21 req-all: 0.1.0 - eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.5.0): + eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.6.0): dependencies: - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) doctrine: 3.0.0 - eslint: 9.5.0 + eslint: 9.6.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3))(eslint-plugin-i@2.29.1)(eslint@9.5.0))(eslint@9.5.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3))(eslint-plugin-i@2.29.1)(eslint@9.6.0))(eslint@9.6.0) get-tsconfig: 4.7.2 is-glob: 4.0.3 minimatch: 3.1.2 @@ -8762,44 +8749,44 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest@28.6.0(@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3))(eslint@9.5.0)(typescript@5.3.3))(eslint@9.5.0)(typescript@5.3.3): + eslint-plugin-jest@28.6.0(@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3): dependencies: - '@typescript-eslint/utils': 7.14.1(eslint@9.5.0)(typescript@5.3.3) - eslint: 9.5.0 + '@typescript-eslint/utils': 7.14.1(eslint@9.6.0)(typescript@5.5.3) + eslint: 9.6.0 optionalDependencies: - '@typescript-eslint/eslint-plugin': 7.14.1(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.5.0)(typescript@5.3.3))(eslint@9.5.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 7.14.1(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jsdoc@48.5.0(eslint@9.5.0): + eslint-plugin-jsdoc@48.5.0(eslint@9.6.0): dependencies: '@es-joy/jsdoccomment': 0.43.1 are-docs-informative: 0.0.2 comment-parser: 1.4.1 - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 9.5.0 - esquery: 1.5.0 - parse-imports: 2.1.0 + eslint: 9.6.0 + esquery: 1.6.0 + parse-imports: 2.1.1 semver: 7.6.2 spdx-expression-parse: 4.0.0 synckit: 0.9.0 transitivePeerDependencies: - supports-color - eslint-plugin-jsonc@2.16.0(eslint@9.5.0): + eslint-plugin-jsonc@2.16.0(eslint@9.6.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0) - eslint: 9.5.0 - eslint-compat-utils: 0.5.0(eslint@9.5.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + eslint: 9.6.0 + eslint-compat-utils: 0.5.0(eslint@9.6.0) espree: 9.6.1 graphemer: 1.4.0 jsonc-eslint-parser: 2.4.0 natural-compare: 1.4.0 synckit: 0.6.2 - eslint-plugin-jsx-a11y@6.9.0(eslint@9.5.0): + eslint-plugin-jsx-a11y@6.9.0(eslint@9.6.0): dependencies: aria-query: 5.1.3 array-includes: 3.1.8 @@ -8810,7 +8797,7 @@ snapshots: damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 es-iterator-helpers: 1.0.19 - eslint: 9.5.0 + eslint: 9.6.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -8819,15 +8806,15 @@ snapshots: safe-regex-test: 1.0.3 string.prototype.includes: 2.0.0 - eslint-plugin-lodash@8.0.0(eslint@9.5.0): + eslint-plugin-lodash@8.0.0(eslint@9.6.0): dependencies: - eslint: 9.5.0 + eslint: 9.6.0 lodash: 4.17.21 - eslint-plugin-mocha@10.4.3(eslint@9.5.0): + eslint-plugin-mocha@10.4.3(eslint@9.6.0): dependencies: - eslint: 9.5.0 - eslint-utils: 3.0.0(eslint@9.5.0) + eslint: 9.6.0 + eslint-utils: 3.0.0(eslint@9.6.0) globals: 13.24.0 rambda: 7.5.0 @@ -8835,37 +8822,37 @@ snapshots: dependencies: requireindex: 1.1.0 - eslint-plugin-n@17.9.0(eslint@9.5.0): + eslint-plugin-n@17.9.0(eslint@9.6.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) enhanced-resolve: 5.17.0 - eslint: 9.5.0 - eslint-plugin-es-x: 7.5.0(eslint@9.5.0) + eslint: 9.6.0 + eslint-plugin-es-x: 7.5.0(eslint@9.6.0) get-tsconfig: 4.7.2 - globals: 15.6.0 + globals: 15.8.0 ignore: 5.3.1 minimatch: 9.0.4 semver: 7.6.2 - eslint-plugin-prettier@5.1.3(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@9.5.0))(eslint@9.5.0)(prettier@3.3.2): + eslint-plugin-prettier@5.1.3(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@9.6.0))(eslint@9.6.0)(prettier@3.3.2): dependencies: - eslint: 9.5.0 + eslint: 9.6.0 prettier: 3.3.2 prettier-linter-helpers: 1.0.0 synckit: 0.8.8 optionalDependencies: '@types/eslint': 8.56.10 - eslint-config-prettier: 9.1.0(eslint@9.5.0) + eslint-config-prettier: 9.1.0(eslint@9.6.0) - eslint-plugin-promise@6.2.0(eslint@9.5.0): + eslint-plugin-promise@6.2.0(eslint@9.6.0): dependencies: - eslint: 9.5.0 + eslint: 9.6.0 - eslint-plugin-react-hooks@4.6.2(eslint@9.5.0): + eslint-plugin-react-hooks@4.6.2(eslint@9.6.0): dependencies: - eslint: 9.5.0 + eslint: 9.6.0 - eslint-plugin-react@7.34.3(eslint@9.5.0): + eslint-plugin-react@7.34.3(eslint@9.6.0): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -8874,7 +8861,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.0.19 - eslint: 9.5.0 + eslint: 9.6.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 @@ -8887,42 +8874,42 @@ snapshots: semver: 6.3.1 string.prototype.matchall: 4.0.11 - eslint-plugin-regexp@2.6.0(eslint@9.5.0): + eslint-plugin-regexp@2.6.0(eslint@9.6.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) '@eslint-community/regexpp': 4.10.0 comment-parser: 1.4.1 - eslint: 9.5.0 + eslint: 9.6.0 jsdoc-type-pratt-parser: 4.0.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-plugin-simple-import-sort@12.1.0(eslint@9.5.0): + eslint-plugin-simple-import-sort@12.1.0(eslint@9.6.0): dependencies: - eslint: 9.5.0 + eslint: 9.6.0 - eslint-plugin-typescript-sort-keys@3.2.0(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3))(eslint@9.5.0)(typescript@5.3.3): + eslint-plugin-typescript-sort-keys@3.2.0(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3): dependencies: - '@typescript-eslint/experimental-utils': 5.62.0(eslint@9.5.0)(typescript@5.3.3) - '@typescript-eslint/parser': 7.14.1(eslint@9.5.0)(typescript@5.3.3) - eslint: 9.5.0 + '@typescript-eslint/experimental-utils': 5.62.0(eslint@9.6.0)(typescript@5.5.3) + '@typescript-eslint/parser': 7.14.1(eslint@9.6.0)(typescript@5.5.3) + eslint: 9.6.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 - typescript: 5.3.3 + typescript: 5.5.3 transitivePeerDependencies: - supports-color - eslint-plugin-unicorn@54.0.0(eslint@9.5.0): + eslint-plugin-unicorn@54.0.0(eslint@9.6.0): dependencies: '@babel/helper-validator-identifier': 7.24.6 - '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) '@eslint/eslintrc': 3.1.0 ci-info: 4.0.0 clean-regexp: 1.0.0 core-js-compat: 3.37.1 - eslint: 9.5.0 - esquery: 1.5.0 + eslint: 9.6.0 + esquery: 1.6.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 jsesc: 3.0.2 @@ -8935,30 +8922,30 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.3.3))(eslint@9.5.0)(typescript@5.3.3))(eslint@9.5.0)(typescript@5.3.3): + eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3): dependencies: - '@typescript-eslint/utils': 7.14.1(eslint@9.5.0)(typescript@5.3.3) - eslint: 9.5.0 + '@typescript-eslint/utils': 7.14.1(eslint@9.6.0)(typescript@5.5.3) + eslint: 9.6.0 optionalDependencies: - '@typescript-eslint/eslint-plugin': 7.14.1(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.5.0)(typescript@5.3.3))(eslint@9.5.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 7.14.1(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-yml@1.14.0(eslint@9.5.0): + eslint-plugin-yml@1.14.0(eslint@9.6.0): dependencies: - debug: 4.3.5 - eslint: 9.5.0 - eslint-compat-utils: 0.5.0(eslint@9.5.0) + debug: 4.3.5(supports-color@8.1.1) + eslint: 9.6.0 + eslint-compat-utils: 0.5.0(eslint@9.6.0) lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.3 transitivePeerDependencies: - supports-color - eslint-plugin-zod@1.4.0(eslint@9.5.0): + eslint-plugin-zod@1.4.0(eslint@9.6.0): dependencies: - eslint: 9.5.0 + eslint: 9.6.0 eslint-rule-composer@0.3.0: {} @@ -8977,9 +8964,9 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-utils@3.0.0(eslint@9.5.0): + eslint-utils@3.0.0(eslint@9.6.0): dependencies: - eslint: 9.5.0 + eslint: 9.6.0 eslint-visitor-keys: 2.1.0 eslint-visitor-keys@2.1.0: {} @@ -9001,13 +8988,13 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) 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.5.0 + esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 @@ -9031,25 +9018,25 @@ snapshots: transitivePeerDependencies: - supports-color - eslint@9.5.0: + eslint@9.6.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) '@eslint-community/regexpp': 4.10.0 - '@eslint/config-array': 0.16.0 + '@eslint/config-array': 0.17.0 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.5.0 + '@eslint/js': 9.6.0 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) escape-string-regexp: 4.0.0 eslint-scope: 8.0.1 eslint-visitor-keys: 4.0.0 espree: 10.1.0 - esquery: 1.5.0 + esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 8.0.0 @@ -9086,7 +9073,7 @@ snapshots: espurify@2.1.1: {} - esquery@1.5.0: + esquery@1.6.0: dependencies: estraverse: 5.3.0 @@ -9493,7 +9480,7 @@ snapshots: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 5.0.1 + minimatch: 5.1.6 once: 1.4.0 globals@11.12.0: {} @@ -9504,7 +9491,7 @@ snapshots: globals@14.0.0: {} - globals@15.6.0: {} + globals@15.8.0: {} globalthis@1.0.3: dependencies: @@ -9538,13 +9525,13 @@ snapshots: graphemer@1.4.0: {} - graphql-config@4.5.0(@types/node@20.14.9)(encoding@0.1.13)(graphql@16.8.1): + graphql-config@4.5.0(@types/node@20.14.10)(encoding@0.1.13)(graphql@16.8.1): dependencies: '@graphql-tools/graphql-file-loader': 7.5.17(graphql@16.8.1) '@graphql-tools/json-file-loader': 7.4.18(graphql@16.8.1) '@graphql-tools/load': 7.8.14(graphql@16.8.1) '@graphql-tools/merge': 8.4.2(graphql@16.8.1) - '@graphql-tools/url-loader': 7.17.18(@types/node@20.14.9)(encoding@0.1.13)(graphql@16.8.1) + '@graphql-tools/url-loader': 7.17.18(@types/node@20.14.10)(encoding@0.1.13)(graphql@16.8.1) '@graphql-tools/utils': 9.2.1(graphql@16.8.1) cosmiconfig: 8.0.0 graphql: 16.8.1 @@ -9662,7 +9649,7 @@ snapshots: http-proxy-agent@7.0.0: dependencies: agent-base: 7.1.0 - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -9675,7 +9662,7 @@ snapshots: https-proxy-agent@7.0.2: dependencies: agent-base: 7.1.0 - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -9706,7 +9693,7 @@ snapshots: import-from-esm@1.3.3: dependencies: - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) import-meta-resolve: 4.0.0 transitivePeerDependencies: - supports-color @@ -9988,13 +9975,13 @@ snapshots: istanbul-lib-coverage@3.2.2: {} - istanbul-lib-instrument@5.2.1: + istanbul-lib-instrument@6.0.3: dependencies: '@babel/core': 7.24.7 - '@babel/parser': 7.23.6 + '@babel/parser': 7.24.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 - semver: 6.3.1 + semver: 7.6.2 transitivePeerDependencies: - supports-color @@ -10164,7 +10151,7 @@ snapshots: dependencies: chalk: 5.3.0 commander: 12.1.0 - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) execa: 8.0.1 lilconfig: 3.1.1 listr2: 8.2.1 @@ -10320,9 +10307,9 @@ snapshots: merge2@1.4.1: {} - meros@1.3.0(@types/node@20.14.9): + meros@1.3.0(@types/node@20.14.10): optionalDependencies: - '@types/node': 20.14.9 + '@types/node': 20.14.10 micro-spelling-correcter@1.1.1: {} @@ -10375,7 +10362,7 @@ snapshots: dependencies: brace-expansion: 1.1.11 - minimatch@5.0.1: + minimatch@5.1.6: dependencies: brace-expansion: 2.0.1 @@ -10433,27 +10420,27 @@ snapshots: mkdirp@1.0.4: {} - mocha@10.5.2: + mocha@10.6.0: dependencies: - ansi-colors: 4.1.1 + ansi-colors: 4.1.3 browser-stdout: 1.3.1 chokidar: 3.5.3 - debug: 4.3.4(supports-color@8.1.1) - diff: 5.0.0 + debug: 4.3.5(supports-color@8.1.1) + diff: 5.2.0 escape-string-regexp: 4.0.0 find-up: 5.0.0 glob: 8.1.0 he: 1.2.0 js-yaml: 4.1.0 log-symbols: 4.1.0 - minimatch: 5.0.1 + minimatch: 5.1.6 ms: 2.1.3 - serialize-javascript: 6.0.0 + serialize-javascript: 6.0.2 strip-json-comments: 3.1.1 supports-color: 8.1.1 - workerpool: 6.2.1 + workerpool: 6.5.1 yargs: 16.2.0 - yargs-parser: 20.2.4 + yargs-parser: 20.2.9 yargs-unparser: 2.0.0 moment@2.30.1: {} @@ -10756,7 +10743,7 @@ snapshots: dependencies: callsites: 3.1.0 - parse-imports@2.1.0: + parse-imports@2.1.1: dependencies: es-module-lexer: 1.5.3 slashes: 3.0.12 @@ -11181,16 +11168,16 @@ snapshots: refa: 0.12.1 regexp-ast-analysis: 0.7.1 - semantic-release@24.0.0(typescript@5.3.3): + semantic-release@24.0.0(typescript@5.5.3): dependencies: - '@semantic-release/commit-analyzer': 13.0.0(semantic-release@24.0.0(typescript@5.3.3)) + '@semantic-release/commit-analyzer': 13.0.0(semantic-release@24.0.0(typescript@5.5.3)) '@semantic-release/error': 4.0.0 - '@semantic-release/github': 10.0.6(semantic-release@24.0.0(typescript@5.3.3)) - '@semantic-release/npm': 12.0.1(semantic-release@24.0.0(typescript@5.3.3)) - '@semantic-release/release-notes-generator': 14.0.1(semantic-release@24.0.0(typescript@5.3.3)) + '@semantic-release/github': 10.1.0(semantic-release@24.0.0(typescript@5.5.3)) + '@semantic-release/npm': 12.0.1(semantic-release@24.0.0(typescript@5.5.3)) + '@semantic-release/release-notes-generator': 14.0.1(semantic-release@24.0.0(typescript@5.5.3)) aggregate-error: 5.0.0 - cosmiconfig: 9.0.0(typescript@5.3.3) - debug: 4.3.5 + cosmiconfig: 9.0.0(typescript@5.5.3) + debug: 4.3.5(supports-color@8.1.1) env-ci: 11.0.0 execa: 9.1.0 figures: 6.1.0 @@ -11230,7 +11217,7 @@ snapshots: semver@7.6.2: {} - serialize-javascript@6.0.0: + serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 @@ -11344,7 +11331,7 @@ snapshots: socks-proxy-agent@8.0.2: dependencies: agent-base: 7.1.0 - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) socks: 2.7.1 transitivePeerDependencies: - supports-color @@ -11664,19 +11651,19 @@ snapshots: traverse@0.6.8: {} - ts-api-utils@1.0.3(typescript@5.3.3): + ts-api-utils@1.0.3(typescript@5.5.3): dependencies: - typescript: 5.3.3 + typescript: 5.5.3 - ts-api-utils@1.3.0(typescript@5.3.3): + ts-api-utils@1.3.0(typescript@5.5.3): dependencies: - typescript: 5.3.3 + typescript: 5.5.3 - ts-unused-exports@9.0.5(typescript@5.3.3): + ts-unused-exports@9.0.5(typescript@5.5.3): dependencies: chalk: 4.1.2 tsconfig-paths: 3.15.0 - typescript: 5.3.3 + typescript: 5.5.3 tsconfig-paths@3.15.0: dependencies: @@ -11689,10 +11676,10 @@ snapshots: tslib@2.6.2: {} - tsutils@3.21.0(typescript@5.3.3): + tsutils@3.21.0(typescript@5.5.3): dependencies: tslib: 1.14.1 - typescript: 5.3.3 + typescript: 5.5.3 tunnel-agent@0.6.0: dependencies: @@ -11758,18 +11745,18 @@ snapshots: is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - typescript-eslint@8.0.0-alpha.34(eslint@9.5.0)(typescript@5.3.3): + typescript-eslint@8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.0.0-alpha.34(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.5.0)(typescript@5.3.3))(eslint@9.5.0)(typescript@5.3.3) - '@typescript-eslint/parser': 8.0.0-alpha.34(eslint@9.5.0)(typescript@5.3.3) - '@typescript-eslint/utils': 8.0.0-alpha.34(eslint@9.5.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 8.0.0-alpha.34(@typescript-eslint/parser@8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3) + '@typescript-eslint/parser': 8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3) + '@typescript-eslint/utils': 8.0.0-alpha.34(eslint@9.6.0)(typescript@5.5.3) optionalDependencies: - typescript: 5.3.3 + typescript: 5.5.3 transitivePeerDependencies: - eslint - supports-color - typescript@5.3.3: {} + typescript@5.5.3: {} uglify-js@3.17.4: optional: true @@ -11970,7 +11957,7 @@ snapshots: wordwrap@1.0.0: {} - workerpool@6.2.1: {} + workerpool@6.5.1: {} wrap-ansi@6.2.0: dependencies: @@ -12035,6 +12022,8 @@ snapshots: yargs-parser@20.2.4: {} + yargs-parser@20.2.9: {} + yargs-parser@21.1.1: {} yargs-unparser@2.0.0: diff --git a/src/jsdocUtils.js b/src/jsdocUtils.js index f9272c5f..96ef6ac9 100644 --- a/src/jsdocUtils.js +++ b/src/jsdocUtils.js @@ -1321,7 +1321,7 @@ const parseClosureTemplateTag = (tag) => { * @param {{ * contexts?: import('./iterateJsdoc.js').Context[] * }} settings - * @returns {string[]} + * @returns {(string|import('./iterateJsdoc.js').ContextObject)[]} */ const enforcedContexts = (context, defaultContexts, settings) => { const contexts = context.options[0]?.contexts || settings.contexts || (defaultContexts === true ? [ diff --git a/src/rules/convertToJsdocComments.js b/src/rules/convertToJsdocComments.js index 111a59c2..81f15b4d 100644 --- a/src/rules/convertToJsdocComments.js +++ b/src/rules/convertToJsdocComments.js @@ -7,11 +7,29 @@ import { getNonJsdocComment, getDecorator, getReducedASTNode, + getFollowingComment, } from '@es-joy/jsdoccomment'; /** @type {import('eslint').Rule.RuleModule} */ export default { create (context) { + /** + * @typedef {import('eslint').AST.Token | import('estree').Comment | { + * type: import('eslint').AST.TokenType|"Line"|"Block"|"Shebang", + * range: [number, number], + * value: string + * }} Token + */ + + /** + * @callback AddComment + * @param {boolean|undefined} inlineCommentBlock + * @param {Token} comment + * @param {string} indent + * @param {number} lines + * @param {import('eslint').Rule.RuleFixer} fixer + */ + /* c8 ignore next -- Fallback to deprecated method */ const { sourceCode = context.getSourceCode(), @@ -23,37 +41,77 @@ export default { const { contexts = settings.contexts || [], + contextsAfter = /** @type {string[]} */ ([]), + contextsBeforeAndAfter = [ + 'VariableDeclarator', 'TSPropertySignature', 'PropertyDefinition' + ], enableFixer = true, enforceJsdocLineStyle = 'multi', lineOrBlockStyle = 'both', allowedPrefixes = ['@ts-', 'istanbul ', 'c8 ', 'v8 ', 'eslint', 'prettier-'] } = context.options[0] ?? {}; + let reportingNonJsdoc = false; + /** - * @type {import('../iterateJsdoc.js').CheckJsdoc} + * @param {string} messageId + * @param {import('estree').Comment|Token} comment + * @param {import('eslint').Rule.Node} node + * @param {import('eslint').Rule.ReportFixer} fixer */ - const checkNonJsdoc = (_info, _handler, node) => { - const comment = getNonJsdocComment(sourceCode, node, settings); + const report = (messageId, comment, node, fixer) => { + const loc = { + end: { + column: 0, + /* c8 ignore next 2 -- Guard */ + // @ts-expect-error Ok + line: (comment.loc?.start?.line ?? 1), + }, + start: { + column: 0, + /* c8 ignore next 2 -- Guard */ + // @ts-expect-error Ok + line: (comment.loc?.start?.line ?? 1) + }, + }; - if ( - !comment || - /** @type {string[]} */ - (allowedPrefixes).some((prefix) => { - return comment.value.trimStart().startsWith(prefix); - }) - ) { - return; - } + context.report({ + fix: enableFixer ? fixer : null, + loc, + messageId, + node, + }); + }; - const fix = /** @type {import('eslint').Rule.ReportFixer} */ (fixer) => { + /** + * @param {import('eslint').Rule.Node} node + * @param {import('eslint').AST.Token | import('estree').Comment | { + * type: import('eslint').AST.TokenType|"Line"|"Block"|"Shebang", + * range: [number, number], + * value: string + * }} comment + * @param {AddComment} addComment + * @param {import('../iterateJsdoc.js').Context[]} ctxts + */ + const getFixer = (node, comment, addComment, ctxts) => { + return /** @type {import('eslint').Rule.ReportFixer} */ (fixer) => { // Default to one line break if the `minLines`/`maxLines` settings allow const lines = settings.minLines === 0 && settings.maxLines >= 1 ? 1 : settings.minLines; - /** @type {import('eslint').Rule.Node|import('@typescript-eslint/types').TSESTree.Decorator} */ - let baseNode = getReducedASTNode(node, sourceCode); + let baseNode = + /** + * @type {import('@typescript-eslint/types').TSESTree.Node|import('eslint').Rule.Node} + */ ( + getReducedASTNode(node, sourceCode) + ); - const decorator = getDecorator(baseNode); + const decorator = getDecorator( + /** @type {import('eslint').Rule.Node} */ + (baseNode) + ); if (decorator) { - baseNode = decorator; + baseNode = /** @type {import('@typescript-eslint/types').TSESTree.Decorator} */ ( + decorator + ); } const indent = jsdocUtils.getIndent({ @@ -75,7 +133,7 @@ export default { * inlineCommentBlock: boolean, * minLineCount: import('../iterateJsdoc.js').Integer * }[]} - */ (contexts).find((contxt) => { + */ (ctxts).find((contxt) => { if (typeof contxt === 'string') { return false; } @@ -85,6 +143,60 @@ export default { } = contxt; return ctxt === node.type; }) || {}; + + return addComment(inlineCommentBlock, comment, indent, lines, fixer); + }; + }; + + /** + * @param {import('eslint').AST.Token | import('estree').Comment | { + * type: import('eslint').AST.TokenType|"Line"|"Block"|"Shebang", + * range: [number, number], + * value: string + * }} comment + * @param {import('eslint').Rule.Node} node + * @param {AddComment} addComment + * @param {import('../iterateJsdoc.js').Context[]} ctxts + */ + const reportings = (comment, node, addComment, ctxts) => { + const fixer = getFixer(node, comment, addComment, ctxts); + + if (comment.type === 'Block') { + if (lineOrBlockStyle === 'line') { + return; + } + report('blockCommentsJsdocStyle', comment, node, fixer); + return; + } + + if (comment.type === 'Line') { + if (lineOrBlockStyle === 'block') { + return; + } + report('lineCommentsJsdocStyle', comment, node, fixer); + } + }; + + /** + * @type {import('../iterateJsdoc.js').CheckJsdoc} + */ + const checkNonJsdoc = (_info, _handler, node) => { + const comment = getNonJsdocComment(sourceCode, node, settings); + + if ( + !comment || + /** @type {string[]} */ + (allowedPrefixes).some((prefix) => { + return comment.value.trimStart().startsWith(prefix); + }) + ) { + return; + } + + reportingNonJsdoc = true; + + /** @type {AddComment} */ + const addComment = (inlineCommentBlock, comment, indent, lines, fixer) => { const insertion = ( inlineCommentBlock || enforceJsdocLineStyle === 'single' ? `/** ${comment.value.trim()} ` @@ -99,53 +211,68 @@ export default { ); }; - /** - * @param {string} messageId - */ - const report = (messageId) => { - const loc = { - end: { - column: 0, - /* c8 ignore next 2 -- Guard */ - // @ts-expect-error Ok - line: (comment.loc?.start?.line ?? 1), - }, - start: { - column: 0, - /* c8 ignore next 2 -- Guard */ - // @ts-expect-error Ok - line: (comment.loc?.start?.line ?? 1) - }, - }; + reportings(comment, node, addComment, contexts); + }; - context.report({ - fix: enableFixer ? fix : null, - loc, - messageId, - node, - }); - }; + /** + * @param {import('eslint').Rule.Node} node + * @param {import('../iterateJsdoc.js').Context[]} ctxts + */ + const checkNonJsdocAfter = (node, ctxts) => { + const comment = getFollowingComment(sourceCode, node); - if (comment.type === 'Block') { - if (lineOrBlockStyle === 'line') { - return; - } - report('blockCommentsJsdocStyle'); + if ( + !comment || + comment.value.startsWith('*') || + /** @type {string[]} */ + (allowedPrefixes).some((prefix) => { + return comment.value.trimStart().startsWith(prefix); + }) + ) { return; } - if (comment.type === 'Line') { - if (lineOrBlockStyle === 'block') { - return; - } - report('lineCommentsJsdocStyle'); - } + /** @type {AddComment} */ + const addComment = (inlineCommentBlock, comment, indent, lines, fixer) => { + const insertion = ( + inlineCommentBlock || enforceJsdocLineStyle === 'single' + ? `/** ${comment.value.trim()} ` + : `/**\n${indent}*${comment.value.trimEnd()}\n${indent}` + ) + + `*/${'\n'.repeat((lines || 1) - 1)}${lines ? `\n${indent.slice(1)}` : ' '}`; + + return [fixer.remove( + /** @type {import('eslint').AST.Token} */ + (comment) + ), fixer.insertTextBefore( + node.type === 'VariableDeclarator' ? node.parent : node, + insertion, + )]; + }; + + reportings(comment, node, addComment, ctxts); }; + // Todo: add contexts to check after (and handle if want both before and after) return { ...jsdocUtils.getContextObject( jsdocUtils.enforcedContexts(context, true, settings), checkNonJsdoc, + ), + ...jsdocUtils.getContextObject( + contextsAfter, + (_info, _handler, node) => { + checkNonJsdocAfter(node, contextsAfter); + }, + ), + ...jsdocUtils.getContextObject( + contextsBeforeAndAfter, + (_info, _handler, node) => { + checkNonJsdoc({}, null, node); + if (!reportingNonJsdoc) { + checkNonJsdocAfter(node, contextsBeforeAndAfter); + } + } ) }; }, @@ -158,7 +285,7 @@ export default { }, docs: { - description: 'Converts non-JSDoc comments preceding nodes into JSDoc ones', + description: 'Converts non-JSDoc comments preceding or following nodes into JSDoc ones', url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/convert-to-jsdoc-comments.md#repos-sticky-header', }, schema: [ @@ -171,18 +298,51 @@ export default { type: 'string' } }, - enableFixer: { - type: 'boolean' - }, - enforceJsdocLineStyle: { - type: 'string', - enum: ['multi', 'single'] + contexts: { + items: { + anyOf: [ + { + type: 'string', + }, + { + additionalProperties: false, + properties: { + context: { + type: 'string', + }, + inlineCommentBlock: { + type: 'boolean', + }, + }, + type: 'object', + }, + ], + }, + type: 'array', }, - lineOrBlockStyle: { - type: 'string', - enum: ['block', 'line', 'both'] + contextsAfter: { + items: { + anyOf: [ + { + type: 'string', + }, + { + additionalProperties: false, + properties: { + context: { + type: 'string', + }, + inlineCommentBlock: { + type: 'boolean', + }, + }, + type: 'object', + }, + ], + }, + type: 'array', }, - contexts: { + contextsBeforeAndAfter: { items: { anyOf: [ { @@ -204,6 +364,17 @@ export default { }, type: 'array', }, + enableFixer: { + type: 'boolean' + }, + enforceJsdocLineStyle: { + type: 'string', + enum: ['multi', 'single'] + }, + lineOrBlockStyle: { + type: 'string', + enum: ['block', 'line', 'both'] + }, }, type: 'object', }, diff --git a/src/rules/requireJsdoc.js b/src/rules/requireJsdoc.js index 0ebcbb0a..521f191a 100644 --- a/src/rules/requireJsdoc.js +++ b/src/rules/requireJsdoc.js @@ -18,6 +18,11 @@ import { * }} RequireJsdocOpts */ +/** + * @typedef {import('eslint').Rule.Node| + * import('@typescript-eslint/types').TSESTree.Node} ESLintOrTSNode + */ + /** @type {import('json-schema').JSONSchema4} */ const OPTIONS_SCHEMA = { additionalProperties: false, @@ -411,10 +416,13 @@ export default { const fix = /** @type {import('eslint').Rule.ReportFixer} */ (fixer) => { // Default to one line break if the `minLines`/`maxLines` settings allow const lines = settings.minLines === 0 && settings.maxLines >= 1 ? 1 : settings.minLines; - /** @type {import('eslint').Rule.Node|import('@typescript-eslint/types').TSESTree.Decorator} */ + /** @type {ESLintOrTSNode|import('@typescript-eslint/types').TSESTree.Decorator} */ let baseNode = getReducedASTNode(node, sourceCode); - const decorator = getDecorator(baseNode); + const decorator = getDecorator( + /** @type {import('eslint').Rule.Node} */ + (baseNode) + ); if (decorator) { baseNode = decorator; } diff --git a/test/rules/assertions/convertToJsdocComments.js b/test/rules/assertions/convertToJsdocComments.js index b9266381..b6692c88 100644 --- a/test/rules/assertions/convertToJsdocComments.js +++ b/test/rules/assertions/convertToJsdocComments.js @@ -278,6 +278,213 @@ export default { /** A single line comment */ function quux () {} ` }, + { + code: ` + var a = []; // Test comment + `, + errors: [ + { + line: 2, + message: 'Line comments should be JSDoc-style.', + }, + ], + options: [ + { + contextsBeforeAndAfter: [], + contextsAfter: ['VariableDeclarator'] + } + ], + output: ` + /** + * Test comment + */ + var a = []; ` + ` + `, + }, + { + code: ` + var a = []; // Test comment + `, + errors: [ + { + line: 2, + message: 'Line comments should be JSDoc-style.', + }, + ], + options: [ + { + contextsBeforeAndAfter: [], + contextsAfter: [ + { + context: 'VariableDeclarator', + inlineCommentBlock: true + } + ] + } + ], + output: ` + /** Test comment */ + var a = []; ` + ` + `, + }, + { + code: ` + var a = []; // Test comment + `, + errors: [ + { + line: 2, + message: 'Line comments should be JSDoc-style.', + }, + ], + options: [ + { + contextsBeforeAndAfter: [], + contextsAfter: [ + { + context: 'VariableDeclarator', + inlineCommentBlock: true + } + ] + } + ], + output: ` + /** Test comment */ var a = []; ` + ` + `, + settings: { + jsdoc: { + minLines: 0, + maxLines: 0, + }, + }, + }, + { + code: ` + // Test comment + var a = []; + `, + errors: [ + { + line: 2, + message: 'Line comments should be JSDoc-style.', + }, + ], + options: [ + { + contextsBeforeAndAfter: ['VariableDeclaration'] + } + ], + output: ` + /** + * Test comment + */ + var a = []; + ` + }, + { + code: ` + var a = []; // Test comment + `, + errors: [ + { + line: 2, + message: 'Line comments should be JSDoc-style.', + }, + ], + options: [ + { + contextsBeforeAndAfter: ['VariableDeclaration'] + } + ], + output: ` + /** + * Test comment + */ + var a = []; ` + ` + `, + }, + { + code: ` + interface B { + g: () => string; // Test comment + } + `, + errors: [ + { + line: 3, + message: 'Line comments should be JSDoc-style.', + }, + ], + languageOptions: { + parser: typescriptEslintParser, + sourceType: 'module', + }, + options: [ + { + contextsBeforeAndAfter: ['TSPropertySignature'] + } + ], + output: ` + interface B { + /** + * Test comment + */ + g: () => string; ` + ` + } + `, + }, + { + code: ` + class TestClass { + public Test: (id: number) => string; // Test comment + } + `, + errors: [ + { + line: 3, + message: 'Line comments should be JSDoc-style.', + }, + ], + languageOptions: { + parser: typescriptEslintParser, + sourceType: 'module', + }, + options: [ + { + contextsBeforeAndAfter: ['PropertyDefinition'] + } + ], + output: ` + class TestClass { + /** + * Test comment + */ + public Test: (id: number) => string; ` + ` + } + `, + }, + { + code: ` + var a = []; // Test comment + `, + errors: [ + { + line: 2, + message: 'Line comments should be JSDoc-style.', + }, + ], + options: [ + { + contextsBeforeAndAfter: ['VariableDeclarator'], + } + ], + output: ` + /** + * Test comment + */ + var a = []; ` + ` + `, + }, ], valid: [ { @@ -350,7 +557,7 @@ export default { }, { code: ` - // @ts-expect-error + // ` + `@ts-expect-error function quux () {} `, }, @@ -365,5 +572,17 @@ export default { } ], }, + { + code: ` + // Test comment + var a = []; + `, + options: [ + { + contextsBeforeAndAfter: [], + contextsAfter: ['VariableDeclarator'] + } + ], + }, ], };